I think the only thing the bead does is calculates what the width of a 
scrollbar will be *if it’s visible*.

The actual logic of setting the width of a component must be set separately.


> On Nov 12, 2017, at 6:24 PM, Piotr Zarzycki <[email protected]> wrote:
> 
> Hi Yishay,
> 
> I like that bead. Just quick question. This class resolves some problems
> with scroll bar for whole document. Am I thinking correctly? Can we have
> such problems for scrollbars in nested elements where scrollbar appears ?
> 
> Thanks, Piotr
> 
> On Sun, Nov 12, 2017, 16:19 <[email protected]> wrote:
> 
>> This is an automated email from the ASF dual-hosted git repository.
>> 
>> yishayw pushed a commit to branch develop
>> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>> 
>> 
>> The following commit(s) were added to refs/heads/develop by this push:
>>     new 200d4f0  Allow detection of default scrollbar width
>>     new 2f0b056  Merge branch 'develop' of
>> https://github.com/apache/royale-asjs into develop
>> 200d4f0 is described below
>> 
>> commit 200d4f097254163100c646192678bdaf112030c2
>> Author: DESKTOP-RH4S838\Yishay <[email protected]>
>> AuthorDate: Sun Nov 12 17:18:31 2017 +0200
>> 
>>    Allow detection of default scrollbar width
>> ---
>> .../Basic/src/main/resources/basic-manifest.xml    |  2 +
>> .../apache/royale/html/beads/GetScrollbarWidth.as  | 71
>> ++++++++++++++++++++++
>> 2 files changed, 73 insertions(+)
>> 
>> diff --git
>> a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> index 4adafe9..90b72b3 100644
>> --- a/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> +++ b/frameworks/projects/Basic/src/main/resources/basic-manifest.xml
>> @@ -108,6 +108,8 @@
>>      <component id="HRuleView"
>> class="org.apache.royale.html.beads.HRuleView" />
>>      <component id="VRuleView"
>> class="org.apache.royale.html.beads.VRuleView" />
>>      -->
>> +
>> +    <component id="GetScrollbarWidth"
>> class="org.apache.royale.html.beads.GetScrollbarWidth"/>
>>     <component id="UnselectableElementBead"
>> class="org.apache.royale.html.beads.UnselectableElementBead"/>
>>     <component id="DisableBead"
>> class="org.apache.royale.html.beads.DisableBead" />
>>     <component id="DisabledAlphaBead"
>> class="org.apache.royale.html.beads.DisabledAlphaBead" />
>> diff --git
>> a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GetScrollbarWidth.as
>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GetScrollbarWidth.as
>> new file mode 100644
>> index 0000000..91f546e
>> --- /dev/null
>> +++
>> b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/GetScrollbarWidth.as
>> @@ -0,0 +1,71 @@
>> 
>> +////////////////////////////////////////////////////////////////////////////////
>> +//
>> +//  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
>> +//
>> +//      http://www.apache.org/licenses/LICENSE-2.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.royale.html.beads
>> +{
>> +       import org.apache.royale.core.IBead;
>> +       import org.apache.royale.core.IStrand;
>> +       COMPILE::JS
>> +       {
>> +               import org.apache.royale.core.WrappedHTMLElement;
>> +       }
>> +
>> +    /**
>> +     *  The GetScrollbarWidth class detects the browser's default
>> +        *  scrollbar width. This can be useful when changing the viewport
>> +        *  width to avoid it being obstructed by the scrollbar.
>> +     *
>> +     *  @langversion 3.0
>> +     *  @playerversion Flash 10.2
>> +     *  @playerversion AIR 2.6
>> +     *  @productversion Royale 0.9
>> +     */
>> +       public class GetScrollbarWidth implements IBead
>> +       {
>> +               private var _scrollbarWidth:Number;
>> +
>> +               public function GetScrollbarWidth()
>> +               {
>> +               }
>> +
>> +        /**
>> +         * @royaleignorecoercion org.apache.royale.core.WrappedHTMLElement
>> +         */
>> +               public function set strand (value:IStrand):void
>> +               {
>> +                       COMPILE::JS
>> +                       {
>> +                               var outerDiv:WrappedHTMLElement =
>> document.createElement("div") as WrappedHTMLElement;
>> +                               document.body.appendChild(outerDiv);
>> +                               outerDiv.style.overflow = "scroll";
>> +                               outerDiv.style.width = "50px";
>> +                               var innerDiv:WrappedHTMLElement =
>> document.createElement("div") as WrappedHTMLElement;
>> +                               innerDiv.style.width = "100%";
>> +                               outerDiv.appendChild(innerDiv);
>> +                               _scrollbarWidth = outerDiv.offsetWidth -
>> innerDiv.offsetWidth;
>> +                               document.body.removeChild(outerDiv);
>> +                       }
>> +               }
>> +
>> +               public function get scrollbarWidth():Number
>> +               {
>> +                       return _scrollbarWidth;
>> +               }
>> +       }
>> +}
>> +
>> 
>> --
>> To stop receiving notification emails like this one, please contact
>> ['"[email protected]" <[email protected]>'].
>> 

Reply via email to