I ran into the Safari problem in my app. I needed to add code like this:
var info:BrowserInfo = BrowserInfo.current(); if(info.browser != "Safari" && info.formFactor.indexOf("iP") == -1){ outerContainer.percentHeight = 100; leftResizeThumb.percentHeight = 100; } The components look something like this: <js:Container x="0" y="40" width="100%" id="dockAndOuterContainer" height="0%" style="align-items:stretch"> <js:beads> <js:OneFlexibleChildHorizontalLayout flexibleChild="outerContainer"/> </js:beads> <components:LeftDock id="leftDock"/> <js:Group visible="false" id="leftResizeThumb"> </js:Group> <js:Container id="outerContainer"/> </js:Container Basically, all browsers except Safari and iOS browsers need to be set to 100%. Safari and iOS browsers CANNOT be set to 100%. I’m not sure how to generalize this code… I have it in three places in my app to make it behave correctly. I’ve been meaning to bring up this issue on the dev@ list. Sorry I didn’t do it sooner… ;-) Harbs > On Sep 26, 2017, at 10:44 PM, Alex Harui <aha...@adobe.com.INVALID> wrote: > > I just reverted ASDoc back to the "ForOverflow" layouts. ASDoc was not > showing up correctly for me (Safari). Maybe flex-basis is handled > differently on different browsers. We can look into it more later. > > Looking into this did make me glad we are changing over to "Royale" so > "Flex" and "FlexJS" will not be confused with FlexBox and the flex-xxx > attributes. > > -Alex > > On 7/31/17, 12:57 AM, "Harbs" <harbs.li...@gmail.com> wrote: > >> The only example I found was the ASDoc app. >> >> I switched it and it appears to work. (I pushed my changes.) >> >>> On Jul 31, 2017, at 7:35 AM, Alex Harui <aha...@adobe.com.INVALID> >>> wrote: >>> >>> It will either work in the examples that use it or it won't. Try it and >>> find out. >>> >>> -Alex >>> >>> On 7/30/17, 3:04 AM, "Harbs" <harbs.li...@gmail.com> wrote: >>> >>>> I think I just ran into the same issue. >>>> >>>> This layout seems to more-or-less do the job, but it’s kind of heavy. >>>> >>>> I did some research into flexbox and it appear that setting flex-basis >>>> to >>>> 0 does the job. It needs to be set on ONLY the one flexible child. >>>> >>>> Here’s a codepen which shows a use case. >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcodepen >>>> .i >>>> >>>> o%2Fjpdevries%2Fpen%2FoXxPOP&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08d4d >>>> 73 >>>> >>>> 2638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636370058818766511&sd >>>> at >>>> a=tSTNYANFFiQ4DMGYbAZaz0dJ9qYDYpcwP2ZoSYRIcG8%3D&reserved=0 >>>> >>>> <https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fcodepe >>>> n. >>>> >>>> io%2Fjpdevries%2Fpen%2FoXxPOP&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08d4 >>>> d7 >>>> >>>> 32638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636370058818766511&s >>>> da >>>> ta=tSTNYANFFiQ4DMGYbAZaz0dJ9qYDYpcwP2ZoSYRIcG8%3D&reserved=0> >>>> >>>> I noticed that the OneFlexibleLayouts have code which set the >>>> flex-basis >>>> of the children if a percentage value is set. When setting the size of >>>> the one flexible child to 0% this causes the flex-basis to be set to 0 >>>> and then the one flexible child will fit the remaining space even if it >>>> might overflow because of its children. >>>> >>>> I have wasted quite a bit of time before I discovered this. I’m not >>>> sure >>>> whether the OneFlexibleLayout classes should be changed, or maybe we >>>> need >>>> documentation that to fit content that might overflow, the percentage >>>> should be set to 0. It could be there are cases where the entire >>>> OnFlexibleLayout should be fit when smaller and expand (and not scroll) >>>> when bigger. In that case, the current behavior might be correct. >>>> >>>> Thoughts? >>>> Harbs >>>> >>>>> On May 23, 2017, at 10:16 AM, aha...@apache.org wrote: >>>>> >>>>> give up on trying to use FlexBox for full-screen 3-pane views. >>>>> FlexBox >>>>> seems more happy stretching to content size instead of clipping at the >>>>> computed flex-ed size. These custom layouts will do the proper sizing >>>>> >>>>> >>>>> Project: >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Frepo&data=02%7C01%7C%7C699bbb1 >>>>> 70 >>>>> >>>>> b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63 >>>>> 63 >>>>> >>>>> 70058818766511&sdata=P%2FMkfZAwCYwpQEoCe5UGx8tW0mZaIZsMdDg6VxlaKWA%3D&r >>>>> es >>>>> erved=0 >>>>> Commit: >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fcommit%2Fbdd34d2e&data=02%7C01 >>>>> %7 >>>>> >>>>> C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1 >>>>> %7 >>>>> >>>>> C0%7C0%7C636370058818766511&sdata=QosBAau8lE4nCS7c%2F8B6GDc%2Bqa%2BpSko >>>>> P5 >>>>> 5x3oji5FnI%3D&reserved=0 >>>>> Tree: >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Ftree%2Fbdd34d2e&data=02%7C01%7 >>>>> C% >>>>> >>>>> 7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7 >>>>> C0 >>>>> >>>>> %7C0%7C636370058818766511&sdata=T4CCqwtn%2FgFTmAnaI%2BuCXqtX0P75ebpKVZO >>>>> xf >>>>> XOTbIE%3D&reserved=0 >>>>> Diff: >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fdiff%2Fbdd34d2e&data=02%7C01%7 >>>>> C% >>>>> >>>>> 7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7 >>>>> C0 >>>>> >>>>> %7C0%7C636370058818766511&sdata=f8WVJXc81KrLMuUgRckULYCfglNL7d%2BfdjSbB >>>>> BU >>>>> 0fRo%3D&reserved=0 >>>>> >>>>> Branch: refs/heads/release0.8.0 >>>>> Commit: bdd34d2ef4d8117fa1b222ac470482a42dbea9eb >>>>> Parents: c505d67 >>>>> Author: Alex Harui <aha...@apache.org> >>>>> Authored: Mon May 22 10:12:02 2017 -0700 >>>>> Committer: Alex Harui <aha...@apache.org> >>>>> Committed: Tue May 23 00:15:56 2017 -0700 >>>>> >>>>> ---------------------------------------------------------------------- >>>>> ...eFlexibleChildHorizontalLayoutForOverflow.as | 290 >>>>> ++++++++++++++++++ >>>>> ...xibleChildHorizontalLayoutLockChildHeight.as | 91 ------ >>>>> ...OneFlexibleChildVerticalLayoutForOverflow.as | 291 >>>>> +++++++++++++++++++ >>>>> ...FlexibleChildVerticalLayoutLockChildWidth.as | 93 ------ >>>>> .../Basic/src/main/resources/basic-manifest.xml | 4 +- >>>>> 5 files changed, 583 insertions(+), 186 deletions(-) >>>>> ---------------------------------------------------------------------- >>>>> >>>>> >>>>> >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframeworks%2 >>>>> Fp >>>>> >>>>> rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2Fbead >>>>> s% >>>>> >>>>> 2Flayouts%2FOneFlexibleChildHorizontalLayoutForOverflow.as&data=02%7C01 >>>>> %7 >>>>> >>>>> C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1 >>>>> %7 >>>>> >>>>> C0%7C0%7C636370058818766511&sdata=L7BjG%2BM7nTwguX%2BNaE5Op6BIT7XZrEqKF >>>>> op >>>>> 0D%2Frc0Aw%3D&reserved=0 >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>> new file mode 100644 >>>>> index 0000000..c6abc22 >>>>> --- /dev/null >>>>> +++ >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutForOverflow.as >>>>> @@ -0,0 +1,290 @@ >>>>> >>>>> >>>>> +////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> +// >>>>> +// Licensed to the Apache Software Foundation (ASF) under one or >>>>> more >>>>> +// contributor license agreements. See the NOTICE file distributed >>>>> with >>>>> +// this work for additional information regarding copyright >>>>> ownership. >>>>> +// The ASF licenses this file to You under the Apache License, >>>>> Version 2.0 >>>>> +// (the "License"); you may not use this file except in compliance >>>>> with >>>>> +// the License. You may obtain a copy of the License at >>>>> +// >>>>> +// >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apa >>>>> ch >>>>> >>>>> e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08 >>>>> d4 >>>>> >>>>> d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63637005881876651 >>>>> 1& >>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>> +// >>>>> +// Unless required by applicable law or agreed to in writing, >>>>> software >>>>> +// distributed under the License is distributed on an "AS IS" BASIS, >>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>>>> implied. >>>>> +// See the License for the specific language governing permissions >>>>> and >>>>> +// limitations under the License. >>>>> +// >>>>> >>>>> >>>>> +////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> +package org.apache.flex.html.beads.layouts >>>>> +{ >>>>> + import org.apache.flex.core.LayoutBase; >>>>> + import org.apache.flex.core.IDocument; >>>>> + import org.apache.flex.core.ILayoutChild; >>>>> + import org.apache.flex.core.ILayoutHost; >>>>> + import org.apache.flex.core.ILayoutView; >>>>> + import org.apache.flex.core.ILayoutParent; >>>>> + import org.apache.flex.core.IParentIUIBase; >>>>> + import org.apache.flex.core.IStrand; >>>>> + import org.apache.flex.core.IUIBase; >>>>> + import org.apache.flex.core.ValuesManager; >>>>> + import org.apache.flex.core.UIBase; >>>>> + import org.apache.flex.events.Event; >>>>> + import org.apache.flex.geom.Rectangle; >>>>> + import org.apache.flex.utils.CSSContainerUtils; >>>>> + import org.apache.flex.utils.CSSUtils; >>>>> + >>>>> + /** >>>>> + * The OneFlexibleChildHorizontalLayoutForOverflowis >>>>> + * intended for building apps that clip >>>>> + * and/or scroll the overflow, especially in a >>>>> + * 3-pane view like the ASDoc examples. It does not use >>>>> + * FlexBox because FlexBox wants to grow to the size >>>>> + * of the content without specifying width/height on >>>>> + * the flexible child. But then the children in >>>>> + * the flexible child cannot use % sizing. >>>>> + * This layout presumes the parent is a known size. >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public class OneFlexibleChildHorizontalLayoutForOverflow extends >>>>> LayoutBase implements IOneFlexibleChildLayout, IDocument >>>>> + { >>>>> + /** >>>>> + * Constructor. >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public function OneFlexibleChildHorizontalLayoutForOverflow() >>>>> + { >>>>> + super(); >>>>> + } >>>>> + >>>>> + private var _flexibleChild:String; >>>>> + >>>>> + protected var actualChild:ILayoutChild; >>>>> + >>>>> + /** >>>>> + * @private >>>>> + * The document. >>>>> + */ >>>>> + private var document:Object; >>>>> + >>>>> + /** >>>>> + * The id of the flexible child >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public function get flexibleChild():String >>>>> + { >>>>> + return _flexibleChild; >>>>> + } >>>>> + >>>>> + /** >>>>> + * @private >>>>> + */ >>>>> + public function set flexibleChild(value:String):void >>>>> + { >>>>> + _flexibleChild = value; >>>>> + } >>>>> + >>>>> + /** >>>>> + * @copy org.apache.flex.core.IBeadLayout#layout >>>>> + */ >>>>> + COMPILE::JS >>>>> + override public function layout():Boolean >>>>> + { >>>>> + var contentView:ILayoutView = layoutView; >>>>> + >>>>> + actualChild = document[flexibleChild]; >>>>> + >>>>> + var n:int = contentView.numElements; >>>>> + if (n == 0) return false; >>>>> + >>>>> + for(var i:int=0; i < n; i++) { >>>>> + var child:UIBase = contentView.getElementAt(i) >>>>> as UIBase; >>>>> + if (child.element.style["display"] != >>>>> "inline-flex" && >>>>> child.element.style["display"] != "none") >>>>> + child.element.style["display"] = >>>>> "inline-block"; >>>>> + } >>>>> + >>>>> + var w:Number = host.width; >>>>> + for(i=0; i < n; i++) { >>>>> + child = contentView.getElementAt(i) as UIBase; >>>>> + if (child != actualChild) >>>>> + w -= child.width; >>>>> + } >>>>> + actualChild.width = w; >>>>> + >>>>> + return true; >>>>> + } >>>>> + >>>>> + COMPILE::SWF >>>>> + override public function layout():Boolean >>>>> + { >>>>> + var contentView:ILayoutView = layoutView; >>>>> + actualChild = document.hasOwnProperty(flexibleChild) ? >>>>> document[flexibleChild] : null; >>>>> + >>>>> + var n:Number = contentView.numElements; >>>>> + if (n == 0) return false; >>>>> + >>>>> + var maxWidth:Number = 0; >>>>> + var maxHeight:Number = 0; >>>>> + var hostSizedToContent:Boolean = >>>>> host.isHeightSizedToContent(); >>>>> + var hostWidth:Number = host.width; >>>>> + var hostHeight:Number = host.height; >>>>> + >>>>> + var ilc:ILayoutChild; >>>>> + var data:Object; >>>>> + var canAdjust:Boolean = false; >>>>> + var margins:Object; >>>>> + >>>>> + var paddingMetrics:Rectangle = >>>>> CSSContainerUtils.getPaddingMetrics(host); >>>>> + var borderMetrics:Rectangle = >>>>> CSSContainerUtils.getBorderMetrics(host); >>>>> + >>>>> + // adjust the host's usable size by the metrics. If >>>>> hostSizedToContent, then the >>>>> + // resulting adjusted value may be less than zero. >>>>> + hostWidth -= paddingMetrics.left + paddingMetrics.right >>>>> + >>>>> borderMetrics.left + borderMetrics.right; >>>>> + hostHeight -= paddingMetrics.top + >>>>> paddingMetrics.bottom + >>>>> borderMetrics.top + borderMetrics.bottom; >>>>> + >>>>> + var xpos:Number = borderMetrics.left + >>>>> paddingMetrics.left; >>>>> + var ypos:Number = borderMetrics.top + >>>>> paddingMetrics.left; >>>>> + var child:IUIBase; >>>>> + var childHeight:Number; >>>>> + var i:int; >>>>> + var childYpos:Number; >>>>> + var adjustLeft:Number = 0; >>>>> + var adjustRight:Number = hostWidth + borderMetrics.left >>>>> + >>>>> paddingMetrics.left; >>>>> + >>>>> + // first work from left to right >>>>> + for(i=0; i < n; i++) >>>>> + { >>>>> + child = contentView.getElementAt(i) as IUIBase; >>>>> + if (child == null || !child.visible) continue; >>>>> + if (child == actualChild) break; >>>>> + >>>>> + margins = childMargins(child, hostWidth, >>>>> hostHeight); >>>>> + ilc = child as ILayoutChild; >>>>> + >>>>> + xpos += margins.left; >>>>> + >>>>> + childYpos = ypos + margins.top; // default y >>>>> position >>>>> + >>>>> + childHeight = child.height; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentHeight)) { >>>>> + childHeight = host.height * >>>>> ilc.percentHeight/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitHeight)) { >>>>> + childHeight = host.height; >>>>> + } >>>>> + ilc.setHeight(childHeight); >>>>> + } >>>>> + >>>>> + if (ilc) { >>>>> + ilc.setX(xpos); >>>>> + ilc.setY(childYpos); >>>>> + >>>>> + if (!isNaN(ilc.percentWidth)) { >>>>> + ilc.setWidth(hostWidth * >>>>> ilc.percentWidth / 100); >>>>> + } >>>>> + >>>>> + } else { >>>>> + child.x = xpos; >>>>> + child.y = childYpos; >>>>> + } >>>>> + >>>>> + xpos += child.width + margins.right; >>>>> + adjustLeft = xpos; >>>>> + } >>>>> + >>>>> + // then work from right to left >>>>> + xpos = hostWidth + borderMetrics.left + >>>>> paddingMetrics.left; >>>>> + >>>>> + for(i=(n-1); actualChild != null && i >= 0; i--) >>>>> + { >>>>> + child = contentView.getElementAt(i) as IUIBase; >>>>> + if (child == null || !child.visible) continue; >>>>> + if (child == actualChild) break; >>>>> + >>>>> + margins = childMargins(child, hostWidth, >>>>> hostHeight); >>>>> + ilc = child as ILayoutChild; >>>>> + >>>>> + childYpos = ypos + margins.top; // default y >>>>> position >>>>> + >>>>> + childHeight = child.height; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentHeight)) { >>>>> + childHeight = host.height * >>>>> ilc.percentHeight/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitHeight)) { >>>>> + childHeight = host.height; >>>>> + } >>>>> + ilc.setHeight(childHeight); >>>>> + } >>>>> + >>>>> + if (ilc) { >>>>> + if (!isNaN(ilc.percentWidth)) { >>>>> + ilc.setWidth(hostWidth * >>>>> ilc.percentWidth / 100); >>>>> + } >>>>> + } >>>>> + >>>>> + xpos -= child.width + margins.right; >>>>> + >>>>> + if (ilc) { >>>>> + ilc.setX(xpos); >>>>> + ilc.setY(childYpos); >>>>> + } else { >>>>> + child.x = xpos; >>>>> + child.y = childYpos; >>>>> + } >>>>> + >>>>> + xpos -= margins.left; >>>>> + adjustRight = xpos; >>>>> + } >>>>> + >>>>> + // now adjust the actualChild to fill the space. >>>>> + if (actualChild != null) { >>>>> + margins = childMargins(actualChild, hostWidth, >>>>> hostHeight); >>>>> + ilc = actualChild as ILayoutChild; >>>>> + childHeight = actualChild.height; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentHeight)) { >>>>> + childHeight = host.height * >>>>> ilc.percentHeight/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitHeight)) { >>>>> + childHeight = host.height; >>>>> + } >>>>> + ilc.setHeight(childHeight); >>>>> + } >>>>> + childYpos = ypos + margins.top; >>>>> + actualChild.x = adjustLeft + margins.left; >>>>> + actualChild.y = childYpos; >>>>> + if (ilc) { >>>>> + >>>>> ilc.setWidth((adjustRight-margins.right) - >>>>> (adjustLeft+margins.left)); >>>>> + } else { >>>>> + actualChild.width = >>>>> (adjustRight-margins.right) - >>>>> (adjustLeft+margins.left); >>>>> + } >>>>> + } >>>>> + >>>>> + return true; >>>>> + } >>>>> + >>>>> + public function setDocument(document:Object, id:String = >>>>> null):void >>>>> + { >>>>> + this.document = document; >>>>> + } >>>>> + >>>>> + } >>>>> + >>>>> +} >>>>> >>>>> >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframeworks%2 >>>>> Fp >>>>> >>>>> rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2Fbead >>>>> s% >>>>> >>>>> 2Flayouts%2FOneFlexibleChildHorizontalLayoutLockChildHeight.as&data=02% >>>>> 7C >>>>> >>>>> 01%7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178de >>>>> ce >>>>> >>>>> e1%7C0%7C0%7C636370058818766511&sdata=Ir1Siye21IUzzijpvWA1XmQN0AbHktLu% >>>>> 2F >>>>> u3h%2BRtBZT0%3D&reserved=0 >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>> deleted file mode 100644 >>>>> index d170d23..0000000 >>>>> --- >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildHorizontalLayoutLockChildHeight.as >>>>> +++ /dev/null >>>>> @@ -1,91 +0,0 @@ >>>>> >>>>> >>>>> -////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> -// >>>>> -// Licensed to the Apache Software Foundation (ASF) under one or >>>>> more >>>>> -// contributor license agreements. See the NOTICE file distributed >>>>> with >>>>> -// this work for additional information regarding copyright >>>>> ownership. >>>>> -// The ASF licenses this file to You under the Apache License, >>>>> Version 2.0 >>>>> -// (the "License"); you may not use this file except in compliance >>>>> with >>>>> -// the License. You may obtain a copy of the License at >>>>> -// >>>>> -// >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apa >>>>> ch >>>>> >>>>> e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08 >>>>> d4 >>>>> >>>>> d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63637005881876651 >>>>> 1& >>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>> -// >>>>> -// Unless required by applicable law or agreed to in writing, >>>>> software >>>>> -// distributed under the License is distributed on an "AS IS" BASIS, >>>>> -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>>>> implied. >>>>> -// See the License for the specific language governing permissions >>>>> and >>>>> -// limitations under the License. >>>>> -// >>>>> >>>>> >>>>> -////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> -package org.apache.flex.html.beads.layouts >>>>> -{ >>>>> - import org.apache.flex.core.LayoutBase; >>>>> - import org.apache.flex.core.IDocument; >>>>> - import org.apache.flex.core.ILayoutChild; >>>>> - import org.apache.flex.core.ILayoutHost; >>>>> - import org.apache.flex.core.ILayoutView; >>>>> - import org.apache.flex.core.ILayoutParent; >>>>> - import org.apache.flex.core.IParentIUIBase; >>>>> - import org.apache.flex.core.IStrand; >>>>> - import org.apache.flex.core.IUIBase; >>>>> - import org.apache.flex.core.ValuesManager; >>>>> - import org.apache.flex.core.UIBase; >>>>> - import org.apache.flex.events.Event; >>>>> - import org.apache.flex.geom.Rectangle; >>>>> - import org.apache.flex.utils.CSSContainerUtils; >>>>> - import org.apache.flex.utils.CSSUtils; >>>>> - >>>>> - /** >>>>> - * The OneFlexibleChildHorizontalLayoutLockChildHeight >>>>> - * is a subclass of OneFlexibleChildHorizontalLayout >>>>> - * that sets the flexible child's height to be the height >>>>> - * of the host container. This is useful when you >>>>> - * don't want the actual child's height to dictate the >>>>> - * height of the container in order to force >>>>> - * scrollbars >>>>> - * >>>>> - * @langversion 3.0 >>>>> - * @playerversion Flash 10.2 >>>>> - * @playerversion AIR 2.6 >>>>> - * @productversion FlexJS 0.0 >>>>> - */ >>>>> - public class OneFlexibleChildHorizontalLayoutLockChildHeight extends >>>>> OneFlexibleChildHorizontalLayout >>>>> - { >>>>> - /** >>>>> - * Constructor. >>>>> - * >>>>> - * @langversion 3.0 >>>>> - * @playerversion Flash 10.2 >>>>> - * @playerversion AIR 2.6 >>>>> - * @productversion FlexJS 0.0 >>>>> - */ >>>>> - public function >>>>> OneFlexibleChildHorizontalLayoutLockChildHeight() >>>>> - { >>>>> - super(); >>>>> - } >>>>> - >>>>> - /** >>>>> - * @copy org.apache.flex.core.IBeadLayout#layout >>>>> - */ >>>>> - override public function layout():Boolean >>>>> - { >>>>> - var ret:Boolean = super.layout(); >>>>> - if (ret) >>>>> - { >>>>> - var contentView:ILayoutView = layoutView; >>>>> - >>>>> - var n:int = contentView.numElements; >>>>> - >>>>> - var h:Number = host.height; >>>>> - for(var i:int=0; i < n; i++) { >>>>> - var child:UIBase = >>>>> contentView.getElementAt(i) as UIBase; >>>>> - if (child != actualChild) >>>>> - h = child.height; >>>>> - } >>>>> - actualChild.setHeight(h); >>>>> - } >>>>> - return ret; >>>>> - } >>>>> - >>>>> - } >>>>> - >>>>> -} >>>>> >>>>> >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframeworks%2 >>>>> Fp >>>>> >>>>> rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2Fbead >>>>> s% >>>>> >>>>> 2Flayouts%2FOneFlexibleChildVerticalLayoutForOverflow.as&data=02%7C01%7 >>>>> C% >>>>> >>>>> 7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7 >>>>> C0 >>>>> >>>>> %7C0%7C636370058818766511&sdata=WdJnx6IGbPwIxUibKB3UqfKTHgHugWIleqBVsqJ >>>>> 5f >>>>> eE%3D&reserved=0 >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>> new file mode 100644 >>>>> index 0000000..5679f80 >>>>> --- /dev/null >>>>> +++ >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutForOverflow.as >>>>> @@ -0,0 +1,291 @@ >>>>> >>>>> >>>>> +////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> +// >>>>> +// Licensed to the Apache Software Foundation (ASF) under one or >>>>> more >>>>> +// contributor license agreements. See the NOTICE file distributed >>>>> with >>>>> +// this work for additional information regarding copyright >>>>> ownership. >>>>> +// The ASF licenses this file to You under the Apache License, >>>>> Version 2.0 >>>>> +// (the "License"); you may not use this file except in compliance >>>>> with >>>>> +// the License. You may obtain a copy of the License at >>>>> +// >>>>> +// >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apa >>>>> ch >>>>> >>>>> e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08 >>>>> d4 >>>>> >>>>> d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63637005881876651 >>>>> 1& >>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>> +// >>>>> +// Unless required by applicable law or agreed to in writing, >>>>> software >>>>> +// distributed under the License is distributed on an "AS IS" BASIS, >>>>> +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>>>> implied. >>>>> +// See the License for the specific language governing permissions >>>>> and >>>>> +// limitations under the License. >>>>> +// >>>>> >>>>> >>>>> +////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> +package org.apache.flex.html.beads.layouts >>>>> +{ >>>>> + import org.apache.flex.core.LayoutBase; >>>>> + import org.apache.flex.core.IDocument; >>>>> + import org.apache.flex.core.ILayoutChild; >>>>> + import org.apache.flex.core.ILayoutHost; >>>>> + import org.apache.flex.core.ILayoutView; >>>>> + import org.apache.flex.core.ILayoutParent; >>>>> + import org.apache.flex.core.IParentIUIBase; >>>>> + import org.apache.flex.core.IStrand; >>>>> + import org.apache.flex.core.IStyleableObject; >>>>> + import org.apache.flex.core.IUIBase; >>>>> + import org.apache.flex.core.ValuesManager; >>>>> + import org.apache.flex.core.UIBase; >>>>> + import org.apache.flex.events.Event; >>>>> + import org.apache.flex.geom.Rectangle; >>>>> + import org.apache.flex.utils.CSSContainerUtils; >>>>> + import org.apache.flex.utils.CSSUtils; >>>>> + >>>>> + /** >>>>> + * The OneFlexibleChildVerticalLayoutForOverflow is >>>>> + * intended for building apps that clip >>>>> + * and/or scroll the overflow, especially in a >>>>> + * 3-pane view like the ASDoc examples. It does not use >>>>> + * FlexBox because FlexBox wants to grow to the size >>>>> + * of the content without specifying width/height on >>>>> + * the flexible child. But then the children in >>>>> + * the flexible child cannot use % sizing. >>>>> + * This layout presumes the parent is a known size. >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public class OneFlexibleChildVerticalLayoutForOverflow extends >>>>> LayoutBase implements IOneFlexibleChildLayout, IDocument >>>>> + { >>>>> + /** >>>>> + * Constructor. >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public function OneFlexibleChildVerticalLayoutForOverflow() >>>>> + { >>>>> + super(); >>>>> + } >>>>> + >>>>> + private var _flexibleChild:String; >>>>> + >>>>> + protected var actualChild:ILayoutChild; >>>>> + >>>>> + /** >>>>> + * @private >>>>> + * The document. >>>>> + */ >>>>> + private var document:Object; >>>>> + >>>>> + /** >>>>> + * The id of the flexible child >>>>> + * >>>>> + * @langversion 3.0 >>>>> + * @playerversion Flash 10.2 >>>>> + * @playerversion AIR 2.6 >>>>> + * @productversion FlexJS 0.0 >>>>> + */ >>>>> + public function get flexibleChild():String >>>>> + { >>>>> + return _flexibleChild; >>>>> + } >>>>> + >>>>> + /** >>>>> + * @private >>>>> + */ >>>>> + public function set flexibleChild(value:String):void >>>>> + { >>>>> + _flexibleChild = value; >>>>> + } >>>>> + >>>>> + /** >>>>> + * @copy org.apache.flex.core.IBeadLayout#layout >>>>> + */ >>>>> + COMPILE::JS >>>>> + override public function layout():Boolean >>>>> + { >>>>> + var contentView:ILayoutView = layoutView; >>>>> + >>>>> + actualChild = document[flexibleChild]; >>>>> + >>>>> + var n:int = contentView.numElements; >>>>> + if (n == 0) return false; >>>>> + >>>>> + for(var i:int=0; i < n; i++) { >>>>> + var child:UIBase = contentView.getElementAt(i) >>>>> as UIBase; >>>>> + if (child.element.style["display"] != "flex" && >>>>> child.element.style["display"] != "none") >>>>> + child.element.style["display"] = >>>>> "block"; >>>>> + } >>>>> + >>>>> + var h:Number = host.height; >>>>> + for(i=0; i < n; i++) { >>>>> + child = contentView.getElementAt(i) as UIBase; >>>>> + if (child != actualChild) >>>>> + h -= child.height; >>>>> + } >>>>> + actualChild.height = h; >>>>> + >>>>> + return true; >>>>> + } >>>>> + >>>>> + COMPILE::SWF >>>>> + override public function layout():Boolean >>>>> + { >>>>> + var contentView:ILayoutView = layoutView; >>>>> + actualChild = document.hasOwnProperty(flexibleChild) ? >>>>> document[flexibleChild] : null; >>>>> + >>>>> + var n:Number = contentView.numElements; >>>>> + if (n == 0) return false; >>>>> + >>>>> + var maxWidth:Number = 0; >>>>> + var maxHeight:Number = 0; >>>>> + var hostSizedToContent:Boolean = >>>>> host.isWidthSizedToContent(); >>>>> + var hostWidth:Number = host.width; >>>>> + var hostHeight:Number = host.height; >>>>> + >>>>> + var ilc:ILayoutChild; >>>>> + var data:Object; >>>>> + var canAdjust:Boolean = false; >>>>> + var margins:Object; >>>>> + >>>>> + var paddingMetrics:Rectangle = >>>>> CSSContainerUtils.getPaddingMetrics(host); >>>>> + var borderMetrics:Rectangle = >>>>> CSSContainerUtils.getBorderMetrics(host); >>>>> + >>>>> + // adjust the host's usable size by the metrics. If >>>>> hostSizedToContent, then the >>>>> + // resulting adjusted value may be less than zero. >>>>> + hostWidth -= paddingMetrics.left + paddingMetrics.right >>>>> + >>>>> borderMetrics.left + borderMetrics.right; >>>>> + hostHeight -= paddingMetrics.top + >>>>> paddingMetrics.bottom + >>>>> borderMetrics.top + borderMetrics.bottom; >>>>> + >>>>> + var xpos:Number = borderMetrics.left + >>>>> paddingMetrics.left; >>>>> + var ypos:Number = borderMetrics.top + >>>>> paddingMetrics.left; >>>>> + var child:IUIBase; >>>>> + var childWidth:Number; >>>>> + var i:int; >>>>> + var childXpos:Number; >>>>> + var adjustTop:Number = 0; >>>>> + var adjustBottom:Number = hostHeight + >>>>> borderMetrics.top + >>>>> paddingMetrics.top; >>>>> + >>>>> + // first work from top to bottom >>>>> + for(i=0; i < n; i++) >>>>> + { >>>>> + child = contentView.getElementAt(i) as IUIBase; >>>>> + if (child == null || !child.visible) continue; >>>>> + if (child == actualChild) break; >>>>> + >>>>> + margins = childMargins(child, hostWidth, >>>>> hostHeight); >>>>> + ilc = child as ILayoutChild; >>>>> + >>>>> + ypos += margins.top; >>>>> + >>>>> + childXpos = xpos + margins.left; // default x >>>>> position >>>>> + >>>>> + childWidth = child.width; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentWidth)) { >>>>> + childWidth = hostWidth * >>>>> ilc.percentWidth/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitWidth)) { >>>>> + childWidth = hostWidth; >>>>> + } >>>>> + ilc.setWidth(childWidth); >>>>> + } >>>>> + >>>>> + if (ilc) { >>>>> + ilc.setX(childXpos); >>>>> + ilc.setY(ypos); >>>>> + >>>>> + if (!isNaN(ilc.percentHeight)) { >>>>> + ilc.setHeight(hostHeight * >>>>> ilc.percentHeight / 100); >>>>> + } >>>>> + >>>>> + } else { >>>>> + child.x = childXpos; >>>>> + child.y = ypos; >>>>> + } >>>>> + >>>>> + ypos += child.height + margins.bottom; >>>>> + adjustTop = ypos; >>>>> + } >>>>> + >>>>> + // then work from bottom to top >>>>> + ypos = hostHeight + borderMetrics.top + >>>>> paddingMetrics.top; >>>>> + >>>>> + for(i=(n-1); actualChild != null && i >= 0; i--) >>>>> + { >>>>> + child = contentView.getElementAt(i) as IUIBase; >>>>> + if (child == null || !child.visible) continue; >>>>> + if (child == actualChild) break; >>>>> + >>>>> + margins = childMargins(child, hostWidth, >>>>> hostHeight); >>>>> + ilc = child as ILayoutChild; >>>>> + >>>>> + childXpos = xpos + margins.left; // default x >>>>> position >>>>> + >>>>> + childWidth = child.width; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentWidth)) { >>>>> + childWidth = hostWidth * >>>>> ilc.percentWidth/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitWidth)) { >>>>> + childWidth = hostWidth; >>>>> + } >>>>> + ilc.setWidth(childWidth); >>>>> + } >>>>> + >>>>> + if (ilc) { >>>>> + if (!isNaN(ilc.percentHeight)) { >>>>> + ilc.setHeight(hostHeight * >>>>> ilc.percentHeight / 100); >>>>> + } >>>>> + } >>>>> + >>>>> + ypos -= child.height + margins.bottom; >>>>> + >>>>> + if (ilc) { >>>>> + ilc.setX(childXpos); >>>>> + ilc.setY(ypos); >>>>> + } else { >>>>> + child.x = childXpos; >>>>> + child.y = ypos; >>>>> + } >>>>> + >>>>> + ypos -= margins.top; >>>>> + adjustBottom = ypos; >>>>> + } >>>>> + >>>>> + // now adjust the actualChild to fill the space. >>>>> + if (actualChild != null) { >>>>> + margins = childMargins(actualChild, hostWidth, >>>>> hostHeight); >>>>> + ilc = actualChild as ILayoutChild; >>>>> + childWidth = actualChild.width; >>>>> + if (ilc != null) >>>>> + { >>>>> + if (!isNaN(ilc.percentWidth)) { >>>>> + childWidth = hostWidth * >>>>> ilc.percentWidth/100.0; >>>>> + } >>>>> + else if (isNaN(ilc.explicitWidth)) { >>>>> + childWidth = hostWidth; >>>>> + } >>>>> + ilc.setWidth(childWidth); >>>>> + } >>>>> + childXpos = xpos + margins.left; >>>>> + >>>>> + actualChild.x = childXpos >>>>> + actualChild.y = adjustTop + margins.top; >>>>> + if (ilc) { >>>>> + >>>>> ilc.setHeight((adjustBottom-margins.bottom) - >>>>> (adjustTop+margins.top)); >>>>> + } else { >>>>> + actualChild.height = >>>>> (adjustBottom-margins.bottom) - >>>>> (adjustTop+margins.top); >>>>> + } >>>>> + } >>>>> + >>>>> + return true; >>>>> + } >>>>> + >>>>> + public function setDocument(document:Object, id:String = >>>>> null):void >>>>> + { >>>>> + this.document = document; >>>>> + } >>>>> + } >>>>> + >>>>> +} >>>>> >>>>> >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframeworks%2 >>>>> Fp >>>>> >>>>> rojects%2FBasic%2Fsrc%2Fmain%2Fflex%2Forg%2Fapache%2Fflex%2Fhtml%2Fbead >>>>> s% >>>>> >>>>> 2Flayouts%2FOneFlexibleChildVerticalLayoutLockChildWidth.as&data=02%7C0 >>>>> 1% >>>>> >>>>> 7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178decee >>>>> 1% >>>>> >>>>> 7C0%7C0%7C636370058818766511&sdata=4Q4bkts0dp4wvvLUtu2yTYNg%2Fr7jS8bRt4 >>>>> co >>>>> 3nYbPKc%3D&reserved=0 >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>> >>>>> b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>> deleted file mode 100644 >>>>> index 7415299..0000000 >>>>> --- >>>>> >>>>> a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/la >>>>> yo >>>>> uts/OneFlexibleChildVerticalLayoutLockChildWidth.as >>>>> +++ /dev/null >>>>> @@ -1,93 +0,0 @@ >>>>> >>>>> >>>>> -////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> -// >>>>> -// Licensed to the Apache Software Foundation (ASF) under one or >>>>> more >>>>> -// contributor license agreements. See the NOTICE file distributed >>>>> with >>>>> -// this work for additional information regarding copyright >>>>> ownership. >>>>> -// The ASF licenses this file to You under the Apache License, >>>>> Version 2.0 >>>>> -// (the "License"); you may not use this file except in compliance >>>>> with >>>>> -// the License. You may obtain a copy of the License at >>>>> -// >>>>> -// >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.apa >>>>> ch >>>>> >>>>> e.org%2Flicenses%2FLICENSE-2.0&data=02%7C01%7C%7C699bbb170b2c4f0bf3ae08 >>>>> d4 >>>>> >>>>> d732638a%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C63637005881876651 >>>>> 1& >>>>> sdata=bButr5xXaczhl741iZvjXub0l1B72d%2FvImajqD7mvyA%3D&reserved=0 >>>>> -// >>>>> -// Unless required by applicable law or agreed to in writing, >>>>> software >>>>> -// distributed under the License is distributed on an "AS IS" BASIS, >>>>> -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>>>> implied. >>>>> -// See the License for the specific language governing permissions >>>>> and >>>>> -// limitations under the License. >>>>> -// >>>>> >>>>> >>>>> -////////////////////////////////////////////////////////////////////// >>>>> // >>>>> //////// >>>>> -package org.apache.flex.html.beads.layouts >>>>> -{ >>>>> - import org.apache.flex.core.LayoutBase; >>>>> - import org.apache.flex.core.IDocument; >>>>> - import org.apache.flex.core.ILayoutChild; >>>>> - import org.apache.flex.core.ILayoutHost; >>>>> - import org.apache.flex.core.ILayoutView; >>>>> - import org.apache.flex.core.ILayoutParent; >>>>> - import org.apache.flex.core.IParentIUIBase; >>>>> - import org.apache.flex.core.IStrand; >>>>> - import org.apache.flex.core.IStyleableObject; >>>>> - import org.apache.flex.core.IUIBase; >>>>> - import org.apache.flex.core.ValuesManager; >>>>> - import org.apache.flex.core.UIBase; >>>>> - import org.apache.flex.events.Event; >>>>> - import org.apache.flex.geom.Rectangle; >>>>> - import org.apache.flex.utils.CSSContainerUtils; >>>>> - import org.apache.flex.utils.CSSUtils; >>>>> - >>>>> - /** >>>>> - * The OneFlexibleChildHorizontalLayoutLockChildHeight >>>>> - * is a subclass of OneFlexibleChildHorizontalLayout >>>>> - * that sets the flexible child's height to be the height >>>>> - * of the host container. This is useful when you >>>>> - * don't want the actual child's height to dictate the >>>>> - * height of the container in order to force >>>>> - * scrollbars or line wrapping. >>>>> - * >>>>> - * @langversion 3.0 >>>>> - * @playerversion Flash 10.2 >>>>> - * @playerversion AIR 2.6 >>>>> - * @productversion FlexJS 0.0 >>>>> - */ >>>>> - public class OneFlexibleChildVerticalLayoutLockChildWidth extends >>>>> OneFlexibleChildVerticalLayout >>>>> - { >>>>> - /** >>>>> - * Constructor. >>>>> - * >>>>> - * @langversion 3.0 >>>>> - * @playerversion Flash 10.2 >>>>> - * @playerversion AIR 2.6 >>>>> - * @productversion FlexJS 0.0 >>>>> - */ >>>>> - public function OneFlexibleChildVerticalLayoutLockChildWidth() >>>>> - { >>>>> - super(); >>>>> - } >>>>> - >>>>> - /** >>>>> - * @copy org.apache.flex.core.IBeadLayout#layout >>>>> - */ >>>>> - override public function layout():Boolean >>>>> - { >>>>> - var ret:Boolean = super.layout(); >>>>> - if (ret) >>>>> - { >>>>> - var contentView:ILayoutView = layoutView; >>>>> - >>>>> - var n:int = contentView.numElements; >>>>> - >>>>> - var w:Number = host.width; >>>>> - for(var i:int=0; i < n; i++) { >>>>> - var child:UIBase = >>>>> contentView.getElementAt(i) as UIBase; >>>>> - if (child != actualChild) >>>>> - w = child.width; >>>>> - } >>>>> - >>>>> - actualChild.setWidth(w); >>>>> - } >>>>> - return ret; >>>>> - } >>>>> - >>>>> - } >>>>> - >>>>> -} >>>>> >>>>> >>>>> >>>>> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgit-wip >>>>> -u >>>>> >>>>> s.apache.org%2Frepos%2Fasf%2Fflex-asjs%2Fblob%2Fbdd34d2e%2Fframeworks%2 >>>>> Fp >>>>> >>>>> rojects%2FBasic%2Fsrc%2Fmain%2Fresources%2Fbasic-manifest.xml&data=02%7 >>>>> C0 >>>>> >>>>> 1%7C%7C699bbb170b2c4f0bf3ae08d4d732638a%7Cfa7b1b5a7b34438794aed2c178dec >>>>> ee >>>>> >>>>> 1%7C0%7C0%7C636370058818766511&sdata=mPldYCuDfp%2BxQ4QROdu4BWSl3Dh7HP19 >>>>> VX >>>>> BR3B3IXOg%3D&reserved=0 >>>>> ---------------------------------------------------------------------- >>>>> diff --git >>>>> a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>> index 7cbc05d..09bb1a3 100644 >>>>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml >>>>> @@ -150,8 +150,8 @@ >>>>> <component id="FlexibleFirstChildHorizontalLayout" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalL >>>>> ay >>>>> out"/> >>>>> <component id="OneFlexibleChildVerticalLayout" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayou >>>>> t" >>>>> /> >>>>> <component id="OneFlexibleChildHorizontalLayout" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizontalLay >>>>> ou >>>>> t"/> >>>>> - <component id="OneFlexibleChildVerticalLayoutLockChildWidth" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayou >>>>> tL >>>>> ockChildWidth"/> >>>>> - <component id="OneFlexibleChildHorizontalLayoutLockChildHeight" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizontalLay >>>>> ou >>>>> tLockChildHeight"/> >>>>> + <component id="OneFlexibleChildVerticalLayoutForOverflow" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildVerticalLayou >>>>> tF >>>>> orOverflow"/> >>>>> + <component id="OneFlexibleChildHorizontalLayoutForOverflow" >>>>> >>>>> class="org.apache.flex.html.beads.layouts.OneFlexibleChildHorizontalLay >>>>> ou >>>>> tForOverflow"/> >>>>> <component id="MXMLBeadView" >>>>> class="org.apache.flex.html.MXMLBeadView"/> >>>>> >>>>> <component id="SubAppLoader" >>>>> class="org.apache.flex.html.SubAppLoader" /> >>>>> >>>> >>> >> >> >