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 <[email protected]> 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" <[email protected]> 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 <[email protected]>
>>> 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" <[email protected]> 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, [email protected] 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 <[email protected]>
>>>>> Authored: Mon May 22 10:12:02 2017 -0700
>>>>> Committer: Alex Harui <[email protected]>
>>>>> 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" />
>>>>>
>>>>
>>>
>>
>>
>