You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/07/31 00:03:06 UTC
[royale-asjs] branch feature/MXRoyale updated (4eb1668 -> a863af6)
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a change to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.
from 4eb1668 Update ComboBase.as
new 3225a39 try to reuse logic from containers
new a863af6 fix up core after introducing moduleFactory
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
basictests.txt | 175763 ++++++++++++++++++
frameworks/js/projects/MXRoyaleJS/build.xml | 1 +
.../main/royale/org/apache/royale/core/UIBase.as | 2 +-
frameworks/projects/MXRoyale/build.xml | 2 +
.../src/main/resources/mx-royale-manifest.xml | 3 +
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 1 +
.../MXRoyale/src/main/royale/mx/containers/Box.as | 5 +
.../MXRoyale/src/main/royale/mx/containers/Form.as | 561 +
.../src/main/royale/mx/containers/FormHeading.as | 162 +-
.../src/main/royale/mx/containers/FormItem.as | 1460 +
.../{TileDirection.as => FormItemDirection.as} | 134 +-
.../MXRoyale/src/main/royale/mx/containers/Grid.as | 1656 +-
.../src/main/royale/mx/containers/GridItem.as | 471 +-
.../src/main/royale/mx/containers/GridRow.as | 1264 +-
.../src/main/royale/mx/containers/TabNavigator.as | 423 +
.../src/main/royale/mx/containers/ViewStack.as | 2171 +-
.../main/royale/mx/containers/beads/BoxLayout.as | 8 +-
.../mx/containers/gridClasses/GridColumnInfo.as | 11 +-
.../mx/containers/gridClasses/GridRowInfo.as | 309 +-
.../SortError.as => controls/FormItemLabel.as} | 32 +-
.../main/royale/mx/core/ContainerCreationPolicy.as | 109 +
.../mx/core/{mx_internal.as => IFlexModule.as} | 24 +-
.../src/main/royale/mx/core/IFlexModuleFactory.as | 153 +
.../core/{FlexGlobals.as => INavigatorContent.as} | 46 +-
.../src/main/royale/mx/core/UIComponent.as | 140 +-
.../src/main/royale/mx/managers/SystemManager.as | 6 +-
.../royale/mx/managers/SystemManagerGlobals.as | 44 +-
.../src/main/royale/mx/styles/StyleManager.as | 833 +
.../src/main/royale/mx/styles/StyleManagerImpl.as | 2114 +
29 files changed, 185387 insertions(+), 2521 deletions(-)
create mode 100644 basictests.txt
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/containers/Form.as
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItem.as
copy frameworks/projects/MXRoyale/src/main/royale/mx/containers/{TileDirection.as => FormItemDirection.as} (67%)
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/containers/TabNavigator.as
copy frameworks/projects/MXRoyale/src/main/royale/mx/{collections/error/SortError.as => controls/FormItemLabel.as} (62%)
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/core/ContainerCreationPolicy.as
copy frameworks/projects/MXRoyale/src/main/royale/mx/core/{mx_internal.as => IFlexModule.as} (71%)
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as
copy frameworks/projects/MXRoyale/src/main/royale/mx/core/{FlexGlobals.as => INavigatorContent.as} (50%)
copy examples/royale/RoyaleStore/src/main/royale/samples/royalestore/ProductFilterEvent.as => frameworks/projects/MXRoyale/src/main/royale/mx/managers/SystemManagerGlobals.as (58%)
mode change 100755 => 100644
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/styles/StyleManager.as
create mode 100644 frameworks/projects/MXRoyale/src/main/royale/mx/styles/StyleManagerImpl.as
[royale-asjs] 02/02: fix up core after introducing moduleFactory
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit a863af654e6363993a52b6ea46e2d8f331fafa90
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Jul 30 17:02:43 2018 -0700
fix up core after introducing moduleFactory
---
basictests.txt | 175763 ++++++++++++++++++
.../MXRoyale/src/main/royale/MXRoyaleClasses.as | 1 +
.../src/main/royale/mx/core/IFlexModuleFactory.as | 10 +-
.../src/main/royale/mx/core/UIComponent.as | 29 +-
.../src/main/royale/mx/managers/SystemManager.as | 6 +-
.../royale/mx/managers/SystemManagerGlobals.as | 56 +
.../src/main/royale/mx/styles/StyleManager.as | 833 +
.../src/main/royale/mx/styles/StyleManagerImpl.as | 2114 +
8 files changed, 178802 insertions(+), 10 deletions(-)
diff --git a/basictests.txt b/basictests.txt
new file mode 100644
index 0000000..ac990f1
--- /dev/null
+++ b/basictests.txt
@@ -0,0 +1,175763 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Parsing swf file:/Users/aharui/git/royale/ant/royale-asjs/mustella/tests/mxtests/basicTests/BasicTests.swf -->
+<swf xmlns="http://macromedia/2003/swfx" version="14" framerate="24.0" size="20000x16000" compressed="true" >
+ <!-- framecount=2 length=528468 -->
+ <FileAttributes useDirectBlit="false" useGPU="false" hasMetadata="true" actionScript3="true" suppressCrossDomainCaching="false" swfRelativeUrls="false" useNetwork="true"/>
+ <Metadata>
+ <![CDATA[<?xml version="1.0" ?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1" xmlns:asc="http://ns.adobe.com/asc/2012">
+ <dc:format>application/x-shockwave-flash</dc:format>
+ <dc:description>http://royale.apache.org/</dc:description>
+ <dc:title>Apache Royale Application</dc:title>
+ <dc:publisher>Apache Software Foundation</dc:publisher>
+ <dc:creator>unknown</dc:creator>
+ <dc:language>EN</dc:language>
+ <dc:date>Jul 30, 2018</dc:date>
+ <asc:compiler name="Apache Royale Compiler" version="0.9.3" build="0"/>
+ </rdf:Description>
+</rdf:RDF>
+]]>
+ </Metadata>
+ <SetBackgroundColor color="#FFFFFF"/>
+ <EnableDebugger2 password="NO-PASSWORD" reserved="0x1975"/>
+ <ProductInfo product="ROYALE" edition="NONE" version="0.8" build="0" compileDate="12/31/69 4:00 PM"/>
+ <ScriptLimits scriptRecursionLimit="1000" scriptTimeLimit="60"/>
+ <FrameLabel label="mx_managers_SystemManager"/>
+ <DoABC>
+// script 0
+
+// class_id=0 slot_id=0
+public interface mx.core::IFlexModuleFactory extends *
+{
+
+ // method_id=4
+ public function mx.core::IFlexModuleFactory():*
+
+ mx.core:IFlexModuleFactory function getImplementation(String):Object
+
+ mx.core:IFlexModuleFactory function info():Object
+
+ public static function mx.core::IFlexModuleFactory$():*
+ {
+ // derivedName null
+ // method_info 3
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script0$init():*
+{
+ // derivedName null
+ // method_info 0
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IFlexModuleFactory
+ 6 returnvoid
+}
+
+// script 1
+
+// class_id=1 slot_id=0
+public interface org.apache.royale.events::IEventDispatcher extends *
+ flash.events::IEventDispatcher
+{
+
+ // method_id=7
+ public function org.apache.royale.events::IEventDispatcher():*
+
+ public static function org.apache.royale.events::IEventDispatcher$():*
+ {
+ // derivedName null
+ // method_info 6
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script1$init():*
+{
+ // derivedName null
+ // method_info 5
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.events::IEventDispatcher
+ 6 returnvoid
+}
+
+// script 2
+
+// class_id=2 slot_id=0
+public interface mx.core::IChildList extends *
+{
+
+ // method_id=20
+ public function mx.core::IChildList():*
+
+ mx.core:IChildList function get numChildren():int
+
+ mx.core:IChildList function addChild(flash.display::DisplayObject):flash.display::DisplayObject
+
+ mx.core:IChildList function addChildAt(flash.display::DisplayObject,int):flash.display::DisplayObject
+
+ mx.core:IChildList function removeChild(flash.display::DisplayObject):flash.display::DisplayObject
+
+ mx.core:IChildList function removeChildAt(int):flash.display::DisplayObject
+
+ mx.core:IChildList function getChildAt(int):flash.display::DisplayObject
+
+ mx.core:IChildList function getChildByName(String):flash.display::DisplayObject
+
+ mx.core:IChildList function getChildIndex(flash.display::DisplayObject):int
+
+ mx.core:IChildList function setChildIndex(flash.display::DisplayObject,int):void
+
+ mx.core:IChildList function contains(flash.display::DisplayObject):Boolean
+
+ public static function mx.core::IChildList$():*
+ {
+ // derivedName null
+ // method_info 19
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script2$init():*
+{
+ // derivedName null
+ // method_info 8
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IChildList
+ 6 returnvoid
+}
+
+// script 3
+
+// class_id=3 slot_id=0
+public interface mx.managers::ISystemManager extends *
+ org.apache.royale.events::IEventDispatcher,mx.core::IChildList
+{
+
+ // method_id=26
+ public function mx.managers::ISystemManager():*
+
+ mx.managers:ISystemManager function get component():Object
+
+ mx.managers:ISystemManager function set component(Object):void
+
+ mx.managers:ISystemManager function getSandboxRoot():Object
+
+ public static function mx.managers::ISystemManager$():*
+ {
+ // derivedName null
+ // method_info 25
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script3$init():*
+{
+ // derivedName null
+ // method_info 21
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.managers::ISystemManager
+ 6 returnvoid
+}
+
+// script 4
+
+// class_id=4 slot_id=0
+[__go_to_definition_help(pos="1333")]
+public class mx.managers::SystemManagerBase extends flash.display::MovieClip
+{
+
+ // method_id=29
+ public function mx.managers::SystemManagerBase():*
+ {
+ // derivedName null
+ // method_info 29
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function mx.managers::SystemManagerBase$():*
+ {
+ // derivedName null
+ // method_info 28
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script4$init():*
+{
+ // derivedName null
+ // method_info 27
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 8
+ // code_length 38
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex flash.display::DisplayObject
+ 8 pushscope
+ 9 getlex flash.display::InteractiveObject
+ 10 pushscope
+ 11 getlex flash.display::DisplayObjectContainer
+ 12 pushscope
+ 13 getlex flash.display::Sprite
+ 14 pushscope
+ 15 getlex flash.display::MovieClip
+ 16 dup
+ 17 pushscope
+ 18 newclass
+ 19 popscope
+ 20 popscope
+ 21 popscope
+ 22 popscope
+ 23 popscope
+ 24 popscope
+ 25 popscope
+ 26 initproperty mx.managers::SystemManagerBase
+ 27 returnvoid
+}
+
+// script 5
+
+// class_id=5 slot_id=0
+[__go_to_definition_help(pos="7256")]
+[__go_to_ctor_definition_help(pos="9327")]
+public class mx.managers::SystemManager extends mx.managers::SystemManagerBase
+ mx.managers::ISystemManager,org.apache.royale.events::IEventDispatcher,mx.core::IChildList
+{
+
+ // method_id=49
+ public function mx.managers::SystemManager():*
+ {
+ // derivedName SystemManager
+ // method_info 49
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 95
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debugline 252
+ 4 getlocal0
+ 5 constructsuper 0
+ 6 getlex stage
+ 7 debugline 258
+ 8 iffalse bb2
+ bb1
+ succs=[bb2]
+ 9 getlex stage
+ 10 debugline 260
+ 11 pushstring "noScale"
+ 12 setproperty scaleMode
+ 13 getlex stage
+ 14 debugline 261
+ 15 pushstring "TL"
+ 16 setproperty align
+ 17 getlex stage
+ 18 debugline 262
+ 19 pushstring "high"
+ 20 setproperty quality
+ bb2
+ succs=[bb4,bb3]
+ 21 findpropstrict stop
+ 22 debugline 266
+ 23 callpropvoid
+ 24 getlex root
+ 25 dup
+ 26 iffalse bb4
+ bb3
+ succs=[bb4]
+ 27 pop
+ 28 getlex root
+ 29 debugline 268
+ 30 getproperty loaderInfo
+ 31 debugline 268
+ bb4
+ succs=[bb6,bb5]
+ 32 iffalse bb6
+ bb5
+ succs=[bb6]
+ 33 getlex root
+ 34 debugline 269
+ 35 getproperty loaderInfo
+ 36 pushstring "init"
+ 37 getlex initHandler
+ 38 callpropvoid
+ bb6
+ succs=[]
+ 39 returnvoid
+ }
+
+ [__go_to_definition_help(pos="10194")]
+ private function deferredNextFrame():void
+ {
+ // derivedName deferredNextFrame
+ // method_info 31
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 92
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 getlex currentFrame
+ 4 debugline 286
+ 5 pushbyte 1
+ 6 add
+ 7 getlex totalFrames
+ 8 greaterthan
+ 9 debugline 286
+ 10 iffalse bb2
+ bb1
+ succs=[]
+ 11 debugline 287
+ 12 returnvoid
+ bb2
+ succs=[bb4,bb3]
+ 13 getlex currentFrame
+ 14 debugline 289
+ 15 pushbyte 1
+ 16 add
+ 17 getlex framesLoaded
+ 18 lessequals
+ 19 debugline 289
+ 20 iffalse bb4
+ bb3
+ succs=[bb5]
+ 21 findpropstrict nextFrame
+ 22 debugline 291
+ 23 callpropvoid
+ 24 jump bb5
+ bb4
+ succs=[bb5]
+ 25 findpropstrict flash.utils::Timer
+ 26 debugline 296
+ 27 pushbyte 100
+ 28 constructprop
+ 29 findproperty nextFrameTimer
+ 30 swap
+ 31 setproperty nextFrameTimer
+ 32 getlex nextFrameTimer
+ 33 debugline 297
+ 34 pushstring "timer"
+ 35 getlex nextFrameTimerHandler
+ 36 callpropvoid
+ 37 getlex nextFrameTimer
+ 38 debugline 299
+ 39 callpropvoid
+ bb5
+ succs=[]
+ 40 returnvoid
+ }
+
+ [__go_to_definition_help(pos="14797")]
+ private var nextFrameTimer:flash.utils::Timer = null
+
+ [__go_to_definition_help(pos="14927")]
+ private var lastFrame:int
+
+ [__go_to_definition_help(pos="25796")]
+ private var _component:Object
+
+ [__go_to_definition_help(pos="26019")]
+ public function get component():Object
+ {
+ // derivedName component
+ // method_info 32
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 getlex _component
+ 4 debugline 833
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="26143")]
+ public function set component(Object):void
+ {
+ // derivedName component
+ // method_info 33
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 19
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _component
+ 6 debugline 841
+ 7 swap
+ 8 setproperty _component
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="38068")]
+ private var _rawChildren:mx.core::IChildList
+
+ [__go_to_definition_help(pos="38300")]
+ public function get rawChildren():mx.core::IChildList
+ {
+ // derivedName rawChildren
+ // method_info 34
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 9
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 getlocal0
+ 4 debugline 1307
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="44744")]
+ public override function addChild(flash.display::DisplayObject):flash.display::DisplayObject
+ {
+ // derivedName addChild
+ // method_info 35
+ // max_stack 2
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 54
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 debug
+ 5 debugline 1548
+ 6 getlocal0
+ 7 getlocal1
+ 8 callsuper
+ 9 coerce flash.display::DisplayObject
+ 10 setlocal2
+ 11 getlocal2
+ 12 getlex org.apache.royale.core::IUIBase
+ 13 debugline 1549
+ 14 istypelate
+ 15 debugline 1549
+ 16 iffalse bb2
+ bb1
+ succs=[bb2]
+ 17 getlocal2
+ 18 getlex org.apache.royale.core::IUIBase
+ 19 debugline 1550
+ 20 astypelate
+ 21 callpropvoid
+ bb2
+ succs=[]
+ 22 getlocal2
+ 23 debugline 1551
+ 24 returnvalue
+ }
+
+ [__go_to_definition_help(pos="52278")]
+ public function create():Object
+ {
+ // derivedName create
+ // method_info 36
+ // max_stack 4
+ // max_regs 10
+ // scope_depth 0
+ // max_scope 1
+ // code_length 151
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as" [...]
+ 3 debug [...]
+ 4 debug [...]
+ 5 debug [...]
+ 6 debug [...]
+ 7 debug [...]
+ 8 debug [...]
+ 9 findpropstrict info [...]
+ 10 debugline [...]
+ 11 callproperty [...]
+ 12 pushstring "mainClassName" [...]
+ 13 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 14 coerce_s [...]
+ 15 setlocal2 [...]
+ 16 getlocal2 [...]
+ 17 debugline [...]
+ 18 pushnull [...]
+ 19 equals [...]
+ 20 debugline [...]
+ 21 iffalse bb2 [...]
+ bb1
+ succs=[bb2]
+ 22 getlex loaderInfo
+ 23 debugline 1812
+ 24 getproperty loaderURL
+ 25 coerce_s
+ 26 setlocal3
+ 27 getlocal3
+ 28 debugline 1813
+ 29 pushstring "."
+ 30 callproperty
+ 31 convert_i
+ 32 setlocal 4
+ 33 getlocal3
+ 34 debugline 1814
+ 35 pushstring "/"
+ 36 callproperty
+ 37 convert_i
+ 38 setlocal 5
+ 39 getlocal3
+ 40 getlocal 5
+ 41 debugline 1815
+ 42 pushbyte 1
+ 43 add
+ 44 getlocal 4
+ 45 callproperty
+ 46 coerce_s
+ 47 setlocal2
+ bb2
+ succs=[bb3,bb4]
+ 48 getlex Class
+ 49 getglobalscope
+ 50 findpropstrict getDefinitionByName
+ 51 getlocal2
+ 52 debugline 1818
+ 53 callproperty
+ 54 call 1
+ 55 coerce Class
+ 56 dup
+ 57 setlocal 6
+ 58 iffalse bb4
+ bb3
+ succs=[bb5]
+ 59 debugline 1820
+ 60 getlocal 6
+ 61 construct 0
+ 62 jump bb5
+ bb4
+ succs=[bb5]
+ 63 pushnull
+ bb5
+ succs=[]
+ 64 returnvalue
+ bb6
+ succs=[]
+ 65 debugline 1826
+ 66 pushnull
+ 67 returnvalue
+ }
+
+ [__go_to_definition_help(pos="53072")]
+ public function info():Object
+ {
+ // derivedName info
+ // method_info 37
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debugline 1836
+ 4 newobject 0
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="66095")]
+ public function getDefinitionByName(String):Object
+ {
+ // derivedName getDefinitionByName
+ // method_info 38
+ // max_stack 2
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 76
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as" [...]
+ 3 debug [...]
+ 4 debug [...]
+ 5 debug [...]
+ 6 pushnull [...]
+ 7 setlocal3 [...]
+ 8 findpropstrict info [...]
+ 9 debugline [...]
+ 10 callproperty [...]
+ 11 pushstring "currentDomain" [...]
+ 12 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 13 getlex flash.system::ApplicationDomain [...]
+ 14 astypelate [...]
+ 15 debugline [...]
+ 16 coerce flash.system::ApplicationDomain [...]
+ 17 setlocal2 [...]
+ 18 getlocal2 [...]
+ 19 getlocal1 [...]
+ 20 debugline [...]
+ 21 callproperty [...]
+ 22 debugline [...]
+ 23 iffalse bb2 [...]
+ bb1
+ succs=[bb2]
+ 24 getlocal2
+ 25 getlocal1
+ 26 debugline 2252
+ 27 callproperty
+ 28 coerce Object
+ 29 setlocal3
+ bb2
+ succs=[]
+ 30 getlocal3
+ 31 debugline 2256
+ 32 returnvalue
+ }
+
+ [__go_to_definition_help(pos="71288")]
+ private function initHandler(flash.events::Event):void
+ {
+ // derivedName initHandler
+ // method_info 39
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 85
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 debug
+ 5 getlex root
+ 6 debugline 2449
+ 7 getproperty loaderInfo
+ 8 pushstring "init"
+ 9 getlex initHandler
+ 10 callpropvoid
+ 11 getlex totalFrames
+ 12 debugline 2458
+ 13 pushbyte 1
+ 14 ifne bb2
+ bb1
+ succs=[bb3]
+ 15 pushbyte 0
+ 16 jump bb3
+ bb2
+ succs=[bb3]
+ 17 pushbyte 1
+ bb3
+ succs=[]
+ 18 convert_i
+ 19 setlocal2
+ 20 findpropstrict addEventListener
+ 21 debugline 2459
+ 22 pushstring "enterFrame"
+ 23 getlex docFrameListener
+ 24 callpropvoid
+ 25 findpropstrict addFrameScript
+ 26 getlocal2
+ 27 getlex docFrameHandler
+ 28 debugline 2460
+ 29 callpropvoid
+ 30 findpropstrict deferredNextFrame
+ 31 debugline 2479
+ 32 callpropvoid
+ 33 returnvoid
+ }
+
+ [__go_to_definition_help(pos="73299")]
+ private function docFrameListener(flash.events::Event):void
+ {
+ // derivedName docFrameListener
+ // method_info 40
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 75
+ bb0
+ succs=[bb4,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 getlex currentFrame
+ 5 debugline 2485
+ 6 pushbyte 2
+ 7 equals
+ 8 debugline 2485
+ 9 iffalse bb4
+ bb1
+ succs=[bb3,bb2]
+ 10 findpropstrict removeEventListener
+ 11 debugline 2487
+ 12 pushstring "enterFrame"
+ 13 getlex docFrameListener
+ 14 callpropvoid
+ 15 getlex totalFrames
+ 16 debugline 2488
+ 17 pushbyte 2
+ 18 greaterthan
+ 19 debugline 2488
+ 20 iffalse bb3
+ bb2
+ succs=[bb3]
+ 21 findpropstrict addEventListener
+ 22 debugline 2489
+ 23 pushstring "enterFrame"
+ 24 getlex extraFrameListener
+ 25 callpropvoid
+ bb3
+ succs=[bb4]
+ 26 findpropstrict docFrameHandler
+ 27 debugline 2491
+ 28 callpropvoid
+ bb4
+ succs=[]
+ 29 returnvoid
+ }
+
+ [__go_to_definition_help(pos="73657")]
+ private function extraFrameListener(flash.events::Event):void
+ {
+ // derivedName extraFrameListener
+ // method_info 41
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 79
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 getlex lastFrame
+ 5 getlex currentFrame
+ 6 debugline 2498
+ 7 equals
+ 8 debugline 2498
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 2499
+ 11 returnvoid
+ bb2
+ succs=[bb3,bb4]
+ 12 getlex currentFrame
+ 13 findproperty lastFrame
+ 14 debugline 2501
+ 15 swap
+ 16 setproperty lastFrame
+ 17 getlex currentFrame
+ 18 debugline 2503
+ 19 pushbyte 1
+ 20 add
+ 21 getlex totalFrames
+ 22 greaterthan
+ 23 debugline 2503
+ 24 iffalse bb4
+ bb3
+ succs=[bb4]
+ 25 findpropstrict removeEventListener
+ 26 debugline 2504
+ 27 pushstring "enterFrame"
+ 28 getlex extraFrameListener
+ 29 callpropvoid
+ bb4
+ succs=[]
+ 30 findpropstrict extraFrameHandler
+ 31 debugline 2506
+ 32 callpropvoid
+ 33 returnvoid
+ }
+
+ [__go_to_definition_help(pos="77429")]
+ private function docFrameHandler(flash.events::Event):void
+ {
+ // derivedName docFrameHandler
+ // method_info 42
+ // max_stack 1
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 19
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 findpropstrict kickOff
+ 5 debugline 2605
+ 6 callpropvoid
+ 7 returnvoid
+ }
+
+ [__go_to_definition_help(pos="78019")]
+ private function kickOff():void
+ {
+ // derivedName kickOff
+ // method_info 43
+ // max_stack 5
+ // max_regs 5
+ // scope_depth 0
+ // max_scope 1
+ // code_length 167
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 getlex component
+ 8 debugline 2629
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 2630
+ 11 returnvoid
+ bb2
+ succs=[bb3,bb4]
+ 12 findpropstrict info [...]
+ 13 debugline [...]
+ 14 callproperty [...]
+ 15 pushstring "mixins" [...]
+ 16 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 17 coerce Array [...]
+ 18 setlocal1 [...]
+ 19 getlocal1 [...]
+ 20 dup [...]
+ 21 iffalse bb4 [...]
+ bb3
+ succs=[bb4]
+ 22 pop
+ 23 getlocal1
+ 24 debugline 2695
+ 25 getproperty length
+ 26 pushbyte 0
+ 27 greaterthan
+ 28 debugline 2695
+ bb4
+ succs=[bb8,bb5]
+ 29 iffalse bb8
+ bb5
+ succs=[bb7]
+ 30 getlocal1
+ 31 debugline 2697
+ 32 getproperty length
+ 33 convert_i
+ 34 setlocal2
+ 35 debugline 2698
+ 36 pushbyte 0
+ 37 setlocal3
+ 38 debugline 2698
+ 39 jump bb7
+ bb6
+ succs=[bb7]
+ 40 label [...]
+ 41 getlex Class [...]
+ 42 getglobalscope [...]
+ 43 findpropstrict getDefinitionByName [...]
+ 44 getlocal1 [...]
+ 45 getlocal3 [...]
+ 46 debugline [...]
+ 47 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 48 callproperty [...]
+ 49 call [...]
+ 50 coerce Class [...]
+ 51 dup [...]
+ 52 setlocal [...]
+ 53 dup [...]
+ 54 debugline [...]
+ 55 pushstring "init" [...]
+ 56 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 57 swap [...]
+ 58 getlocal0 [...]
+ 59 call [...]
+ 60 pop [...]
+ 61 inclocal_i [...]
+ 62 debugline [...]
+ bb7
+ succs=[bb8,bb6]
+ 63 getlocal3
+ 64 getlocal2
+ 65 iflt bb6
+ bb8
+ succs=[]
+ 66 findpropstrict initializeTopLevelWindow
+ 67 debugline 2726
+ 68 pushnull
+ 69 callpropvoid
+ 70 findpropstrict deferredNextFrame
+ 71 debugline 2728
+ 72 callpropvoid
+ 73 returnvoid
+ }
+
+ [__go_to_definition_help(pos="85451")]
+ private function extraFrameHandler(flash.events::Event):void
+ {
+ // derivedName extraFrameHandler
+ // method_info 44
+ // max_stack 5
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 105
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as" [...]
+ 3 debug [...]
+ 4 debug [...]
+ 5 debug [...]
+ 6 findpropstrict info [...]
+ 7 debugline [...]
+ 8 callproperty [...]
+ 9 pushstring "frames" [...]
+ 10 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 11 coerce Object [...]
+ 12 setlocal2 [...]
+ 13 getlocal2 [...]
+ 14 dup [...]
+ 15 iffalse bb2 [...]
+ bb1
+ succs=[bb2]
+ 16 pop [...]
+ 17 getlocal2 [...]
+ 18 getlex currentLabel [...]
+ 19 debugline [...]
+ 20 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash.eve [...]
+ 21 debugline [...]
+ bb2
+ succs=[bb3,bb4]
+ 22 iffalse bb4
+ bb3
+ succs=[bb4]
+ 23 getlex Class [...]
+ 24 getglobalscope [...]
+ 25 findpropstrict getDefinitionByName [...]
+ 26 getlocal2 [...]
+ 27 getlex currentLabel [...]
+ 28 debugline [...]
+ 29 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 30 callproperty [...]
+ 31 call [...]
+ 32 coerce Class [...]
+ 33 setlocal3 [...]
+ 34 getlocal3 [...]
+ 35 dup [...]
+ 36 debugline [...]
+ 37 pushstring "frame" [...]
+ 38 getproperty <error> MultinameL: {PrivateNs:"mx.managers:SystemManager",ProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManager",StaticProtectedNs:"mx.managers:SystemManagerBase",StaticProtectedNs:"flash.display:MovieClip",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash. [...]
+ 39 swap [...]
+ 40 getlocal0 [...]
+ 41 call [...]
+ 42 pop [...]
+ bb4
+ succs=[]
+ 43 findpropstrict deferredNextFrame
+ 44 debugline 2817
+ 45 callpropvoid
+ 46 returnvoid
+ }
+
+ [__go_to_definition_help(pos="86020")]
+ private function nextFrameTimerHandler(flash.events::TimerEvent):void
+ {
+ // derivedName nextFrameTimerHandler
+ // method_info 45
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 57
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 getlex currentFrame
+ 5 debugline 2831
+ 6 pushbyte 1
+ 7 add
+ 8 getlex framesLoaded
+ 9 lessequals
+ 10 debugline 2831
+ 11 iffalse bb2
+ bb1
+ succs=[bb2]
+ 12 findpropstrict nextFrame
+ 13 debugline 2833
+ 14 callpropvoid
+ 15 getlex nextFrameTimer
+ 16 debugline 2834
+ 17 pushstring "timer"
+ 18 getlex nextFrameTimerHandler
+ 19 callpropvoid
+ 20 getlex nextFrameTimer
+ 21 debugline 2836
+ 22 callpropvoid
+ bb2
+ succs=[]
+ 23 returnvoid
+ }
+
+ [__go_to_definition_help(pos="87074")]
+ private function initializeTopLevelWindow(flash.events::Event):void
+ {
+ // derivedName initializeTopLevelWindow
+ // method_info 46
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 55
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 getlex mx.core::IUIComponent
+ 5 getglobalscope
+ 6 findpropstrict create
+ 7 debugline 2868
+ 8 callproperty
+ 9 call 1
+ 10 findproperty component
+ 11 swap
+ 12 setproperty component
+ 13 getlex component
+ 14 debugline 2870
+ 15 pushstring "applicationComplete"
+ 16 getlex applicationCompleteHandler
+ 17 callpropvoid
+ 18 findpropstrict addChild
+ 19 getlex component
+ 20 getlex flash.display::DisplayObject
+ 21 debugline 2873
+ 22 astypelate
+ 23 callpropvoid
+ 24 returnvoid
+ }
+
+ [__go_to_definition_help(pos="87509")]
+ private function applicationCompleteHandler(flash.events::Event):void
+ {
+ // derivedName applicationCompleteHandler
+ // method_info 47
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 20
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 debug
+ 4 findpropstrict dispatchEvent
+ 5 getlocal1
+ 6 debugline 2883
+ 7 callpropvoid
+ 8 returnvoid
+ }
+
+ [__go_to_definition_help(pos="101494")]
+ public function getSandboxRoot():Object
+ {
+ // derivedName getSandboxRoot
+ // method_info 48
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 9
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/managers;SystemManager.as"
+ 3 getlocal0
+ 4 debugline 3341
+ 5 returnvalue
+ }
+
+ public static function mx.managers::SystemManager$():*
+ {
+ // derivedName null
+ // method_info 50
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script5$init():*
+{
+ // derivedName null
+ // method_info 30
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 9
+ // code_length 42
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex flash.display::DisplayObject
+ 8 pushscope
+ 9 getlex flash.display::InteractiveObject
+ 10 pushscope
+ 11 getlex flash.display::DisplayObjectContainer
+ 12 pushscope
+ 13 getlex flash.display::Sprite
+ 14 pushscope
+ 15 getlex flash.display::MovieClip
+ 16 pushscope
+ 17 getlex mx.managers::SystemManagerBase
+ 18 dup
+ 19 pushscope
+ 20 newclass
+ 21 popscope
+ 22 popscope
+ 23 popscope
+ 24 popscope
+ 25 popscope
+ 26 popscope
+ 27 popscope
+ 28 popscope
+ 29 initproperty mx.managers::SystemManager
+ 30 returnvoid
+}
+
+// script 6
+
+// class_id=6 slot_id=0
+public interface org.apache.royale.core::IRenderedObject extends *
+{
+
+ // method_id=54
+ public function org.apache.royale.core::IRenderedObject():*
+
+ org.apache.royale.core:IRenderedObject function get $displayObject():flash.display::DisplayObject
+
+ public static function org.apache.royale.core::IRenderedObject$():*
+ {
+ // derivedName null
+ // method_info 53
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script6$init():*
+{
+ // derivedName null
+ // method_info 51
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IRenderedObject
+ 6 returnvoid
+}
+
+// script 7
+
+// class_id=7 slot_id=0
+public interface org.apache.royale.core::IChild extends *
+ org.apache.royale.core::IRenderedObject
+{
+
+ // method_id=58
+ public function org.apache.royale.core::IChild():*
+
+ [SWFOverride(returns="flash.display.DisplayObjectContainer")]
+ org.apache.royale.core:IChild function get parent():flash.display::DisplayObjectContainer
+
+ public static function org.apache.royale.core::IChild$():*
+ {
+ // derivedName null
+ // method_info 57
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script7$init():*
+{
+ // derivedName null
+ // method_info 55
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IChild
+ 6 returnvoid
+}
+
+// script 8
+
+// class_id=8 slot_id=0
+public interface org.apache.royale.core::IStrand extends *
+{
+
+ // method_id=64
+ public function org.apache.royale.core::IStrand():*
+
+ org.apache.royale.core:IStrand function addBead(org.apache.royale.core::IBead):void
+
+ org.apache.royale.core:IStrand function getBeadByType(Class):org.apache.royale.core::IBead
+
+ org.apache.royale.core:IStrand function removeBead(org.apache.royale.core::IBead):org.apache.royale.core::IBead
+
+ public static function org.apache.royale.core::IStrand$():*
+ {
+ // derivedName null
+ // method_info 63
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script8$init():*
+{
+ // derivedName null
+ // method_info 59
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IStrand
+ 6 returnvoid
+}
+
+// script 9
+
+// class_id=9 slot_id=0
+public interface org.apache.royale.core::IUIBase extends *
+ org.apache.royale.core::IStrand,org.apache.royale.events::IEventDispatcher,org.apache.royale.core::IChild
+{
+
+ // method_id=81
+ public function org.apache.royale.core::IUIBase():*
+
+ org.apache.royale.core:IUIBase function addedToParent():void
+
+ org.apache.royale.core:IUIBase function get alpha():Number
+
+ org.apache.royale.core:IUIBase function set alpha(Number):void
+
+ org.apache.royale.core:IUIBase function get x():Number
+
+ org.apache.royale.core:IUIBase function set x(Number):void
+
+ org.apache.royale.core:IUIBase function get y():Number
+
+ org.apache.royale.core:IUIBase function set y(Number):void
+
+ org.apache.royale.core:IUIBase function get width():Number
+
+ org.apache.royale.core:IUIBase function set width(Number):void
+
+ org.apache.royale.core:IUIBase function get height():Number
+
+ org.apache.royale.core:IUIBase function set height(Number):void
+
+ org.apache.royale.core:IUIBase function get visible():Boolean
+
+ org.apache.royale.core:IUIBase function set visible(Boolean):void
+
+ org.apache.royale.core:IUIBase function get topMostEventDispatcher():org.apache.royale.events::IEventDispatcher
+
+ public static function org.apache.royale.core::IUIBase$():*
+ {
+ // derivedName null
+ // method_info 80
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script9$init():*
+{
+ // derivedName null
+ // method_info 65
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IUIBase
+ 6 returnvoid
+}
+
+// script 10
+
+// class_id=10 slot_id=0
+public interface mx.core::IFlexDisplayObject extends *
+ org.apache.royale.events::IEventDispatcher
+{
+
+ // method_id=109
+ public function mx.core::IFlexDisplayObject():*
+
+ mx.core:IFlexDisplayObject function get name():String
+
+ mx.core:IFlexDisplayObject function set name(String):void
+
+ [SWFOverride(returns="flash.display.DisplayObjectContainer")]
+ mx.core:IFlexDisplayObject function get parent():flash.display::DisplayObjectContainer
+
+ mx.core:IFlexDisplayObject function get visible():Boolean
+
+ mx.core:IFlexDisplayObject function set visible(Boolean):void
+
+ mx.core:IFlexDisplayObject function get x():Number
+
+ mx.core:IFlexDisplayObject function set x(Number):void
+
+ mx.core:IFlexDisplayObject function get y():Number
+
+ mx.core:IFlexDisplayObject function set y(Number):void
+
+ mx.core:IFlexDisplayObject function get mouseX():Number
+
+ mx.core:IFlexDisplayObject function get mouseY():Number
+
+ mx.core:IFlexDisplayObject function get alpha():Number
+
+ mx.core:IFlexDisplayObject function set alpha(Number):void
+
+ mx.core:IFlexDisplayObject function get width():Number
+
+ mx.core:IFlexDisplayObject function set width(Number):void
+
+ mx.core:IFlexDisplayObject function get height():Number
+
+ mx.core:IFlexDisplayObject function set height(Number):void
+
+ mx.core:IFlexDisplayObject function get cacheAsBitmap():Boolean
+
+ mx.core:IFlexDisplayObject function set cacheAsBitmap(Boolean):void
+
+ mx.core:IFlexDisplayObject function get filters():Array
+
+ mx.core:IFlexDisplayObject function set filters(Array):void
+
+ mx.core:IFlexDisplayObject function get measuredHeight():Number
+
+ mx.core:IFlexDisplayObject function get measuredWidth():Number
+
+ mx.core:IFlexDisplayObject function move(Number,Number):void
+
+ mx.core:IFlexDisplayObject function setActualSize(Number,Number):void
+
+ public static function mx.core::IFlexDisplayObject$():*
+ {
+ // derivedName null
+ // method_info 108
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script10$init():*
+{
+ // derivedName null
+ // method_info 82
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IFlexDisplayObject
+ 6 returnvoid
+}
+
+// script 11
+
+// class_id=11 slot_id=0
+public interface mx.core::IUIComponent extends *
+ mx.core::IFlexDisplayObject,org.apache.royale.core::IChild
+{
+
+ // method_id=152
+ public function mx.core::IUIComponent():*
+
+ mx.core:IUIComponent function get component():Object
+
+ mx.core:IUIComponent function set component(Object):void
+
+ mx.core:IUIComponent function get enabled():Boolean
+
+ mx.core:IUIComponent function set enabled(Boolean):void
+
+ mx.core:IUIComponent function get explicitHeight():Number
+
+ mx.core:IUIComponent function set explicitHeight(Number):void
+
+ mx.core:IUIComponent function get explicitMaxHeight():Number
+
+ mx.core:IUIComponent function get explicitMaxWidth():Number
+
+ mx.core:IUIComponent function get explicitMinHeight():Number
+
+ mx.core:IUIComponent function get explicitMinWidth():Number
+
+ mx.core:IUIComponent function get explicitWidth():Number
+
+ mx.core:IUIComponent function set explicitWidth(Number):void
+
+ mx.core:IUIComponent function get includeInLayout():Boolean
+
+ mx.core:IUIComponent function set includeInLayout(Boolean):void
+
+ mx.core:IUIComponent function get isPopUp():Boolean
+
+ mx.core:IUIComponent function set isPopUp(Boolean):void
+
+ mx.core:IUIComponent function get maxHeight():Number
+
+ mx.core:IUIComponent function get maxWidth():Number
+
+ mx.core:IUIComponent function get measuredMinHeight():Number
+
+ mx.core:IUIComponent function set measuredMinHeight(Number):void
+
+ mx.core:IUIComponent function get measuredMinWidth():Number
+
+ mx.core:IUIComponent function set measuredMinWidth(Number):void
+
+ mx.core:IUIComponent function get minHeight():Number
+
+ mx.core:IUIComponent function get minWidth():Number
+
+ mx.core:IUIComponent function get owner():mx.core::IUIComponent
+
+ mx.core:IUIComponent function set owner(mx.core::IUIComponent):void
+
+ mx.core:IUIComponent function get percentHeight():Number
+
+ mx.core:IUIComponent function set percentHeight(Number):void
+
+ mx.core:IUIComponent function get percentWidth():Number
+
+ mx.core:IUIComponent function set percentWidth(Number):void
+
+ mx.core:IUIComponent function get scaleX():Number
+
+ mx.core:IUIComponent function set scaleX(Number):void
+
+ mx.core:IUIComponent function get scaleY():Number
+
+ mx.core:IUIComponent function set scaleY(Number):void
+
+ mx.core:IUIComponent function get systemManager():mx.managers::ISystemManager
+
+ mx.core:IUIComponent function set systemManager(mx.managers::ISystemManager):void
+
+ mx.core:IUIComponent function initialize():void
+
+ mx.core:IUIComponent function getExplicitOrMeasuredWidth():Number
+
+ mx.core:IUIComponent function getExplicitOrMeasuredHeight():Number
+
+ mx.core:IUIComponent function owns(mx.core::IUIComponent):Boolean
+
+ public static function mx.core::IUIComponent$():*
+ {
+ // derivedName null
+ // method_info 151
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script11$init():*
+{
+ // derivedName null
+ // method_info 110
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IUIComponent
+ 6 returnvoid
+}
+
+// script 12
+
+// class_id=12 slot_id=0
+public interface org.apache.royale.core::IBead extends *
+{
+
+ // method_id=156
+ public function org.apache.royale.core::IBead():*
+
+ org.apache.royale.core:IBead function set strand(org.apache.royale.core::IStrand):void
+
+ public static function org.apache.royale.core::IBead$():*
+ {
+ // derivedName null
+ // method_info 155
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script12$init():*
+{
+ // derivedName null
+ // method_info 153
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IBead
+ 6 returnvoid
+}
+
+// script 13
+
+// class_id=13 slot_id=0
+public interface org.apache.royale.core::IParent extends *
+{
+
+ // method_id=165
+ public function org.apache.royale.core::IParent():*
+
+ org.apache.royale.core:IParent function addElement(org.apache.royale.core::IChild,Boolean):void
+
+ org.apache.royale.core:IParent function addElementAt(org.apache.royale.core::IChild,int,Boolean):void
+
+ org.apache.royale.core:IParent function getElementIndex(org.apache.royale.core::IChild):int
+
+ org.apache.royale.core:IParent function removeElement(org.apache.royale.core::IChild,Boolean):void
+
+ org.apache.royale.core:IParent function get numElements():int
+
+ org.apache.royale.core:IParent function getElementAt(int):org.apache.royale.core::IChild
+
+ public static function org.apache.royale.core::IParent$():*
+ {
+ // derivedName null
+ // method_info 164
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script13$init():*
+{
+ // derivedName null
+ // method_info 157
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IParent
+ 6 returnvoid
+}
+
+// script 14
+
+// class_id=14 slot_id=0
+public dynamic class _BasicTests_mx_managers_SystemManager extends mx.managers::SystemManager
+ mx.core::IFlexModuleFactory
+{
+
+ // method_id=167
+ public function _BasicTests_mx_managers_SystemManager():*
+ {
+ // derivedName null
+ // method_info 167
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 4
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 constructsuper 0
+ 2 returnvoid
+ }
+
+ public final override function create():Object
+ {
+ // derivedName null
+ // method_info 168
+ // max_stack 3
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 0
+ // code_length 78
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal1
+ 1 getproperty length
+ 2 pushbyte 0
+ 3 ifgt bb2
+ bb1
+ succs=[bb5]
+ 4 findproperty BasicTests
+ 5 getproperty BasicTests
+ 6 jump bb5
+ bb2
+ succs=[bb3,bb4]
+ 7 getlocal1
+ 8 getproperty 0
+ 9 istype String
+ 10 iffalse bb4
+ bb3
+ succs=[bb5]
+ 11 finddef flash.utils::getDefinitionByName
+ 12 getlocal1
+ 13 getproperty 0
+ 14 callproperty
+ 15 jump bb5
+ bb4
+ succs=[]
+ 16 getlocal0
+ 17 getsuper create
+ 18 getlocal0
+ 19 getlocal1
+ 20 callproperty
+ 21 returnvalue
+ bb5
+ succs=[bb6,bb9]
+ 22 astype Class
+ 23 dup
+ 24 iffalse bb9
+ bb6
+ succs=[bb8,bb7]
+ 25 construct 0
+ 26 dup
+ 27 istype mx.core::IFlexModule
+ 28 iffalse bb8
+ bb7
+ succs=[bb8]
+ 29 dup
+ 30 getlocal0
+ 31 setproperty moduleFactory
+ bb8
+ succs=[]
+ 32 returnvalue
+ bb9
+ succs=[]
+ 33 returnvalue
+ }
+
+ public final override function info():Object
+ {
+ // derivedName null
+ // method_info 169
+ // max_stack 38
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 162
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 getproperty info
+ 2 dup
+ 3 iftrue bb2
+ bb1
+ succs=[bb2]
+ 4 pop
+ 5 pushstring "currentDomain"
+ 6 getlex flash.system::ApplicationDomain
+ 7 getproperty currentDomain
+ 8 pushstring "royaleVersion"
+ 9 pushstring "67567616"
+ 10 pushstring "isMXMLC"
+ 11 pushfalse
+ 12 pushstring "mainClassName"
+ 13 pushstring "BasicTests"
+ 14 pushstring "width"
+ 15 pushstring "1000"
+ 16 pushstring "paddingTop"
+ 17 pushstring "8"
+ 18 pushstring "verticalGap"
+ 19 pushstring "0"
+ 20 pushstring "height"
+ 21 pushstring "800"
+ 22 pushstring "compiledLocales"
+ 23 pushstring "en_US"
+ 24 newarray 1
+ 25 pushstring "styleDataClassName"
+ 26 pushstring "_BasicTests_Styles"
+ 27 pushstring "mixins"
+ 28 pushstring "_BasicTests_FlexInit"
+ 29 pushstring "ExitWhenDone"
+ 30 pushstring "RoyaleContext"
+ 31 pushstring "SendFormattedResultsToLog"
+ 32 pushstring "UnitTester"
+ 33 pushstring "halo.scripts.ButtonTestScript"
+ 34 pushstring "halo.scripts.CheckBoxTestScript"
+ 35 pushstring "halo.scripts.ComboBoxTestScript"
+ 36 pushstring "halo.scripts.DateFieldTestScript"
+ 37 pushstring "halo.scripts.ListAndDataGridTestScript"
+ 38 pushstring "halo.scripts.MenuBarTestScript"
+ 39 pushstring "halo.scripts.NumericStepperTestScript"
+ 40 pushstring "halo.scripts.RadioButtonTestScript"
+ 41 pushstring "halo.scripts.TextAreaTestScript"
+ 42 pushstring "halo.scripts.TextInputTestScript"
+ 43 pushstring "mx.styles.StyleManagerImpl"
+ 44 pushstring "spark.scripts.ButtonTestScript"
+ 45 newarray 17
+ 46 pushstring "accessibilityClassNames"
+ 47 pushstring "mx.accessibility.LabelAccImpl"
+ 48 pushstring "mx.accessibility.ComboBoxAccImpl"
+ 49 pushstring "mx.accessibility.PanelAccImpl"
+ 50 pushstring "mx.accessibility.DateFieldAccImpl"
+ 51 pushstring "mx.accessibility.DataGridAccImpl"
+ 52 pushstring "mx.accessibility.ListAccImpl"
+ 53 pushstring "mx.accessibility.ComboBaseAccImpl"
+ 54 newarray 7
+ 55 newobject 12
+ 56 dup
+ 57 getlocal0
+ 58 swap
+ 59 setproperty info
+ bb2
+ succs=[]
+ 60 returnvalue
+ }
+
+ private var info:Object
+
+ public static function _BasicTests_mx_managers_SystemManager$():*
+ {
+ // derivedName null
+ // method_info 166
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script14$init():*
+{
+ // derivedName null
+ // method_info 170
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 10
+ // code_length 47
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex flash.display::DisplayObject
+ 8 pushscope
+ 9 getlex flash.display::InteractiveObject
+ 10 pushscope
+ 11 getlex flash.display::DisplayObjectContainer
+ 12 pushscope
+ 13 getlex flash.display::Sprite
+ 14 pushscope
+ 15 getlex flash.display::MovieClip
+ 16 pushscope
+ 17 getlex mx.managers::SystemManagerBase
+ 18 pushscope
+ 19 getlex mx.managers::SystemManager
+ 20 dup
+ 21 pushscope
+ 22 newclass
+ 23 popscope
+ 24 popscope
+ 25 popscope
+ 26 popscope
+ 27 popscope
+ 28 popscope
+ 29 popscope
+ 30 popscope
+ 31 popscope
+ 32 initproperty _BasicTests_mx_managers_SystemManager
+ 33 returnvoid
+}
+
+ </DoABC>
+ <SymbolClass>
+ <Symbol idref="0" className="_BasicTests_mx_managers_SystemManager" />
+ </SymbolClass>
+ <ShowFrame/>
+ <FrameLabel label="BasicTests"/>
+ <DoABC>
+// script 0
+
+// class_id=0 slot_id=0
+[__go_to_definition_help(pos="1463")]
+[__go_to_ctor_definition_help(pos="1738")]
+public class org.apache.royale.events::EventDispatcher extends flash.events::EventDispatcher
+ org.apache.royale.events::IEventDispatcher
+{
+
+ // method_id=1
+ public function org.apache.royale.events::EventDispatcher(org.apache.royale.events::IEventDispatcher):*
+ {
+ // derivedName EventDispatcher
+ // method_info 1
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 19
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Core/src/main/royale;org/apache/royale/events;EventDispatcher.as"
+ 3 debug
+ 4 getlocal0
+ 5 getlocal1
+ 6 getlex flash.events::IEventDispatcher
+ 7 debugline 55
+ 8 astypelate
+ 9 constructsuper 1
+ 10 returnvoid
+ }
+
+ public static function org.apache.royale.events::EventDispatcher$():*
+ {
+ // derivedName null
+ // method_info 2
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script0$init():*
+{
+ // derivedName null
+ // method_info 0
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 3
+ // code_length 18
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 dup
+ 7 pushscope
+ 8 newclass
+ 9 popscope
+ 10 popscope
+ 11 initproperty org.apache.royale.events::EventDispatcher
+ 12 returnvoid
+}
+
+// script 1
+
+// class_id=1 slot_id=0
+public interface mx.styles::IStyleManager2 extends *
+{
+
+ // method_id=5
+ public function mx.styles::IStyleManager2():*
+
+ public static function mx.styles::IStyleManager2$():*
+ {
+ // derivedName null
+ // method_info 4
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script1$init():*
+{
+ // derivedName null
+ // method_info 3
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.styles::IStyleManager2
+ 6 returnvoid
+}
+
+// script 2
+
+// class_id=2 slot_id=0
+[__go_to_definition_help(pos="2093")]
+[__go_to_ctor_definition_help(pos="8463")]
+public class mx.styles::StyleManagerImpl extends org.apache.royale.events::EventDispatcher
+ mx.styles::IStyleManager2
+{
+
+ // method_id=49
+ public function mx.styles::StyleManagerImpl(mx.core::IFlexModuleFactory):*
+ {
+ // derivedName StyleManagerImpl
+ // method_info 49
+ // max_stack 144
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 1003
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 5 debugline 343
+ 6 pushstring "align"
+ 7 pushtrue
+ 8 debugline 344
+ 9 pushstring "bold"
+ 10 pushtrue
+ 11 debugline 345
+ 12 pushstring "color"
+ 13 pushtrue
+ 14 debugline 346
+ 15 pushstring "font"
+ 16 pushtrue
+ 17 debugline 347
+ 18 pushstring "indent"
+ 19 pushtrue
+ 20 debugline 348
+ 21 pushstring "italic"
+ 22 pushtrue
+ 23 debugline 349
+ 24 pushstring "size"
+ 25 pushtrue
+ 26 debugline 342
+ 27 newobject 7
+ 28 findproperty inheritingTextFormatStyles
+ 29 debugline 341
+ 30 swap
+ 31 setproperty inheritingTextFormatStyles
+ 32 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 33 debugline 361
+ 34 pushstring "alignmentBaseline"
+ 35 pushtrue
+ 36 debugline 362
+ 37 pushstring "baselineShift"
+ 38 pushtrue
+ 39 debugline 363
+ 40 pushstring "blockProgression"
+ 41 pushtrue
+ 42 debugline 364
+ 43 pushstring "borderStyle"
+ 44 pushtrue
+ 45 debugline 365
+ 46 pushstring "borderThickness"
+ 47 pushtrue
+ 48 debugline 366
+ 49 pushstring "breakOpportunity"
+ 50 pushtrue
+ 51 debugline 367
+ 52 pushstring "cffHinting"
+ 53 pushtrue
+ 54 debugline 368
+ 55 pushstring "columnCount"
+ 56 pushtrue
+ 57 debugline 369
+ 58 pushstring "columnGap"
+ 59 pushtrue
+ 60 debugline 370
+ 61 pushstring "columnWidth"
+ 62 pushtrue
+ 63 debugline 371
+ 64 pushstring "digitCase"
+ 65 pushtrue
+ 66 debugline 372
+ 67 pushstring "digitWidth"
+ 68 pushtrue
+ 69 debugline 373
+ 70 pushstring "direction"
+ 71 pushtrue
+ 72 debugline 374
+ 73 pushstring "dominantBaseline"
+ 74 pushtrue
+ 75 debugline 375
+ 76 pushstring "firstBaselineOffset"
+ 77 pushtrue
+ 78 debugline 376
+ 79 pushstring "fontAntiAliasType"
+ 80 pushtrue
+ 81 debugline 377
+ 82 pushstring "fontFamily"
+ 83 pushtrue
+ 84 debugline 378
+ 85 pushstring "fontGridFitType"
+ 86 pushtrue
+ 87 debugline 379
+ 88 pushstring "fontLookup"
+ 89 pushtrue
+ 90 debugline 380
+ 91 pushstring "fontSharpness"
+ 92 pushtrue
+ 93 debugline 381
+ 94 pushstring "fontSize"
+ 95 pushtrue
+ 96 debugline 382
+ 97 pushstring "fontStyle"
+ 98 pushtrue
+ 99 debugline 383
+ 100 pushstring "fontThickness"
+ 101 pushtrue
+ 102 debugline 384
+ 103 pushstring "fontWeight"
+ 104 pushtrue
+ 105 debugline 385
+ 106 pushstring "headerHeight"
+ 107 pushtrue
+ 108 debugline 386
+ 109 pushstring "horizontalAlign"
+ 110 pushtrue
+ 111 debugline 387
+ 112 pushstring "horizontalGap"
+ 113 pushtrue
+ 114 debugline 388
+ 115 pushstring "justificationRule"
+ 116 pushtrue
+ 117 debugline 389
+ 118 pushstring "justificationStyle"
+ 119 pushtrue
+ 120 debugline 390
+ 121 pushstring "kerning"
+ 122 pushtrue
+ 123 debugline 391
+ 124 pushstring "leading"
+ 125 pushtrue
+ 126 debugline 392
+ 127 pushstring "leadingModel"
+ 128 pushtrue
+ 129 debugline 393
+ 130 pushstring "letterSpacing"
+ 131 pushtrue
+ 132 debugline 394
+ 133 pushstring "ligatureLevel"
+ 134 pushtrue
+ 135 debugline 395
+ 136 pushstring "lineBreak"
+ 137 pushtrue
+ 138 debugline 396
+ 139 pushstring "lineHeight"
+ 140 pushtrue
+ 141 debugline 397
+ 142 pushstring "lineThrough"
+ 143 pushtrue
+ 144 debugline 398
+ 145 pushstring "listAutoPadding"
+ 146 pushtrue
+ 147 debugline 399
+ 148 pushstring "listStylePosition"
+ 149 pushtrue
+ 150 debugline 400
+ 151 pushstring "listStyleType"
+ 152 pushtrue
+ 153 debugline 401
+ 154 pushstring "locale"
+ 155 pushtrue
+ 156 debugline 402
+ 157 pushstring "marginBottom"
+ 158 pushtrue
+ 159 debugline 403
+ 160 pushstring "marginLeft"
+ 161 pushtrue
+ 162 debugline 404
+ 163 pushstring "marginRight"
+ 164 pushtrue
+ 165 debugline 405
+ 166 pushstring "marginTop"
+ 167 pushtrue
+ 168 debugline 406
+ 169 pushstring "paddingBottom"
+ 170 pushtrue
+ 171 debugline 407
+ 172 pushstring "paddingLeft"
+ 173 pushtrue
+ 174 debugline 408
+ 175 pushstring "paddingRight"
+ 176 pushtrue
+ 177 debugline 409
+ 178 pushstring "paddingTop"
+ 179 pushtrue
+ 180 debugline 410
+ 181 pushstring "paragraphEndIndent"
+ 182 pushtrue
+ 183 debugline 411
+ 184 pushstring "paragraphStartIndent"
+ 185 pushtrue
+ 186 debugline 412
+ 187 pushstring "paragraphSpaceAfter"
+ 188 pushtrue
+ 189 debugline 413
+ 190 pushstring "paragraphSpaceBefore"
+ 191 pushtrue
+ 192 debugline 414
+ 193 pushstring "renderingMode"
+ 194 pushtrue
+ 195 debugline 415
+ 196 pushstring "strokeWidth"
+ 197 pushtrue
+ 198 debugline 416
+ 199 pushstring "tabHeight"
+ 200 pushtrue
+ 201 debugline 417
+ 202 pushstring "tabWidth"
+ 203 pushtrue
+ 204 debugline 418
+ 205 pushstring "tabStops"
+ 206 pushtrue
+ 207 debugline 419
+ 208 pushstring "textAlign"
+ 209 pushtrue
+ 210 debugline 420
+ 211 pushstring "textAlignLast"
+ 212 pushtrue
+ 213 debugline 421
+ 214 pushstring "textDecoration"
+ 215 pushtrue
+ 216 debugline 422
+ 217 pushstring "textIndent"
+ 218 pushtrue
+ 219 debugline 423
+ 220 pushstring "textJustify"
+ 221 pushtrue
+ 222 debugline 424
+ 223 pushstring "textRotation"
+ 224 pushtrue
+ 225 debugline 425
+ 226 pushstring "tracking"
+ 227 pushtrue
+ 228 debugline 426
+ 229 pushstring "trackingLeft"
+ 230 pushtrue
+ 231 debugline 427
+ 232 pushstring "trackingRight"
+ 233 pushtrue
+ 234 debugline 428
+ 235 pushstring "typographicCase"
+ 236 pushtrue
+ 237 debugline 429
+ 238 pushstring "verticalAlign"
+ 239 pushtrue
+ 240 debugline 430
+ 241 pushstring "verticalGap"
+ 242 pushtrue
+ 243 debugline 431
+ 244 pushstring "wordSpacing"
+ 245 pushtrue
+ 246 debugline 432
+ 247 pushstring "whitespaceCollapse"
+ 248 pushtrue
+ 249 debugline 360
+ 250 newobject 72
+ 251 findproperty sizeInvalidatingStyles
+ 252 debugline 359
+ 253 swap
+ 254 setproperty sizeInvalidatingStyles
+ 255 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 256 debugline 444
+ 257 pushstring "baseline"
+ 258 pushtrue
+ 259 debugline 445
+ 260 pushstring "bottom"
+ 261 pushtrue
+ 262 debugline 446
+ 263 pushstring "horizontalCenter"
+ 264 pushtrue
+ 265 debugline 447
+ 266 pushstring "left"
+ 267 pushtrue
+ 268 debugline 448
+ 269 pushstring "right"
+ 270 pushtrue
+ 271 debugline 449
+ 272 pushstring "top"
+ 273 pushtrue
+ 274 debugline 450
+ 275 pushstring "verticalCenter"
+ 276 pushtrue
+ 277 debugline 443
+ 278 newobject 7
+ 279 findproperty parentSizeInvalidatingStyles
+ 280 debugline 442
+ 281 swap
+ 282 setproperty parentSizeInvalidatingStyles
+ 283 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 284 debugline 462
+ 285 pushstring "baseline"
+ 286 pushtrue
+ 287 debugline 463
+ 288 pushstring "bottom"
+ 289 pushtrue
+ 290 debugline 464
+ 291 pushstring "horizontalCenter"
+ 292 pushtrue
+ 293 debugline 465
+ 294 pushstring "left"
+ 295 pushtrue
+ 296 debugline 466
+ 297 pushstring "right"
+ 298 pushtrue
+ 299 debugline 467
+ 300 pushstring "top"
+ 301 pushtrue
+ 302 debugline 468
+ 303 pushstring "verticalCenter"
+ 304 pushtrue
+ 305 debugline 461
+ 306 newobject 7
+ 307 findproperty parentDisplayListInvalidatingStyles
+ 308 debugline 460
+ 309 swap
+ 310 setproperty parentDisplayListInvalidatingStyles
+ 311 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 312 debugline 485
+ 313 pushstring "transparent"
+ 314 pushstring "transparent"
+ 315 debugline 486
+ 316 pushstring "black"
+ 317 pushbyte 0
+ 318 debugline 487
+ 319 pushstring "blue"
+ 320 pushshort 255
+ 321 debugline 488
+ 322 pushstring "green"
+ 323 pushint
+ 324 debugline 489
+ 325 pushstring "gray"
+ 326 pushint
+ 327 debugline 490
+ 328 pushstring "silver"
+ 329 pushint
+ 330 debugline 491
+ 331 pushstring "lime"
+ 332 pushint
+ 333 debugline 492
+ 334 pushstring "olive"
+ 335 pushint
+ 336 debugline 493
+ 337 pushstring "white"
+ 338 pushint
+ 339 debugline 494
+ 340 pushstring "yellow"
+ 341 pushint
+ 342 debugline 495
+ 343 pushstring "maroon"
+ 344 pushint
+ 345 debugline 496
+ 346 pushstring "navy"
+ 347 pushshort 128
+ 348 debugline 497
+ 349 pushstring "red"
+ 350 pushint
+ 351 debugline 498
+ 352 pushstring "purple"
+ 353 pushint
+ 354 debugline 499
+ 355 pushstring "teal"
+ 356 pushint
+ 357 debugline 500
+ 358 pushstring "fuchsia"
+ 359 pushint
+ 360 debugline 501
+ 361 pushstring "aqua"
+ 362 pushint
+ 363 debugline 502
+ 364 pushstring "magenta"
+ 365 pushint
+ 366 debugline 503
+ 367 pushstring "cyan"
+ 368 pushint
+ 369 debugline 509
+ 370 pushstring "halogreen"
+ 371 pushint
+ 372 debugline 510
+ 373 pushstring "haloblue"
+ 374 pushint
+ 375 debugline 511
+ 376 pushstring "haloorange"
+ 377 pushint
+ 378 debugline 512
+ 379 pushstring "halosilver"
+ 380 pushint
+ 381 debugline 484
+ 382 newobject 23
+ 383 findproperty colorNames
+ 384 debugline 483
+ 385 swap
+ 386 setproperty colorNames
+ 387 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 388 debugline 536
+ 389 newobject 0
+ 390 findproperty _selectors
+ 391 swap
+ 392 setproperty _selectors
+ 393 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 394 debugline 541
+ 395 newobject 0
+ 396 findproperty styleModules
+ 397 swap
+ 398 setproperty styleModules
+ 399 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 400 debugline 550
+ 401 newobject 0
+ 402 findproperty _subjects
+ 403 swap
+ 404 setproperty _subjects
+ 405 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 406 debugline 663
+ 407 newobject 0
+ 408 findproperty _inheritingStyles
+ 409 swap
+ 410 setproperty _inheritingStyles
+ 411 debugline 285
+ 412 getlocal0
+ 413 constructsuper 0
+ 414 getlocal1
+ 415 debugline 287
+ 416 iftrue bb2
+ bb1
+ succs=[]
+ 417 returnvoid
+ bb2
+ succs=[]
+ 418 getlocal0
+ 419 getlocal1
+ 420 debugline 289
+ 421 setproperty moduleFactory
+ 422 returnvoid
+ }
+
+ [__go_to_definition_help(pos="9798")]
+ private var selectorIndex:int = 0
+
+ [__go_to_definition_help(pos="10177")]
+ private var inheritingTextFormatStyles:Object
+
+ [__go_to_definition_help(pos="10589")]
+ private var sizeInvalidatingStyles:Object
+
+ [__go_to_definition_help(pos="12599")]
+ private var parentSizeInvalidatingStyles:Object
+
+ [__go_to_definition_help(pos="13076")]
+ private var parentDisplayListInvalidatingStyles:Object
+
+ [__go_to_definition_help(pos="13783")]
+ private var colorNames:Object
+
+ [__go_to_definition_help(pos="14628")]
+ private var _hasAdvancedSelectors:Boolean
+
+ [__go_to_definition_help(pos="14844")]
+ private var _pseudoCSSStates:Object
+
+ [__go_to_definition_help(pos="15131")]
+ private var _selectors:Object
+
+ [__go_to_definition_help(pos="15194")]
+ private var styleModules:Object
+
+ [__go_to_definition_help(pos="15476")]
+ private var _subjects:Object
+
+ [__go_to_definition_help(pos="15749")]
+ private var mergedInheritingStylesCache:Object
+
+ [__go_to_definition_help(pos="15871")]
+ private var moduleFactory:mx.core::IFlexModuleFactory
+
+ [__go_to_definition_help(pos="16220")]
+ private var _parent:mx.styles::IStyleManager2
+
+ [__go_to_definition_help(pos="16452")]
+ public function get parent():mx.styles::IStyleManager2
+ {
+ // derivedName parent
+ // method_info 11
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _parent
+ 4 debugline 595
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="16715")]
+ public function get qualifiedTypeSelectors():Boolean
+ {
+ // derivedName qualifiedTypeSelectors
+ // method_info 12
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 25
+ bb0
+ succs=[bb3,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _qualifiedTypeSelectors
+ 4 debugline 614
+ 5 iffalse bb3
+ bb1
+ succs=[]
+ 6 getlex _qualifiedTypeSelectors
+ 7 debugline 615
+ 8 returnvalue
+ bb2
+ succs=[bb3]
+ 9 debugline 622
+ bb3
+ succs=[]
+ 10 pushfalse
+ 11 returnvalue
+ }
+
+ [__go_to_definition_help(pos="17050")]
+ public function set qualifiedTypeSelectors(Boolean):void
+ {
+ // derivedName qualifiedTypeSelectors
+ // method_info 13
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _qualifiedTypeSelectors
+ 6 debugline 627
+ 7 swap
+ 8 setproperty _qualifiedTypeSelectors
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="17267")]
+ private var _stylesRoot:Object
+
+ [__go_to_definition_help(pos="17661")]
+ public function get stylesRoot():Object
+ {
+ // derivedName stylesRoot
+ // method_info 14
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _stylesRoot
+ 4 debugline 649
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="17730")]
+ public function set stylesRoot(Object):void
+ {
+ // derivedName stylesRoot
+ // method_info 15
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _stylesRoot
+ 6 debugline 653
+ 7 swap
+ 8 setproperty _stylesRoot
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="17928")]
+ private var _inheritingStyles:Object
+
+ [__go_to_definition_help(pos="18289")]
+ public function get inheritingStyles():Object
+ {
+ // derivedName inheritingStyles
+ // method_info 16
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 48
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlex mergedInheritingStylesCache
+ 5 debugline 676
+ 6 iffalse bb2
+ bb1
+ succs=[]
+ 7 getlex mergedInheritingStylesCache
+ 8 debugline 677
+ 9 returnvalue
+ bb2
+ succs=[]
+ 10 getlex _inheritingStyles
+ 11 debugline 679
+ 12 coerce Object
+ 13 setlocal1
+ 14 getlocal1
+ 15 findproperty mergedInheritingStylesCache
+ 16 debugline 694
+ 17 swap
+ 18 setproperty mergedInheritingStylesCache
+ 19 getlocal1
+ 20 debugline 696
+ 21 returnvalue
+ }
+
+ [__go_to_definition_help(pos="18780")]
+ public function set inheritingStyles(Object):void
+ {
+ // derivedName inheritingStyles
+ // method_info 17
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 30
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _inheritingStyles
+ 6 debugline 701
+ 7 swap
+ 8 setproperty _inheritingStyles
+ 9 debugline 702
+ 10 pushnull
+ 11 findproperty mergedInheritingStylesCache
+ 12 swap
+ 13 setproperty mergedInheritingStylesCache
+ 14 returnvoid
+ }
+
+ [__go_to_definition_help(pos="19159")]
+ private var _typeHierarchyCache:Object
+
+ [__go_to_definition_help(pos="19234")]
+ public function get typeHierarchyCache():Object
+ {
+ // derivedName typeHierarchyCache
+ // method_info 18
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _typeHierarchyCache
+ 4 debugline 724
+ 5 pushnull
+ 6 equals
+ 7 debugline 724
+ 8 iffalse bb2
+ bb1
+ succs=[bb2]
+ 9 debugline 725
+ 10 newobject 0
+ 11 findproperty _typeHierarchyCache
+ 12 swap
+ 13 setproperty _typeHierarchyCache
+ bb2
+ succs=[]
+ 14 getlex _typeHierarchyCache
+ 15 debugline 727
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="19412")]
+ public function set typeHierarchyCache(Object):void
+ {
+ // derivedName typeHierarchyCache
+ // method_info 19
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _typeHierarchyCache
+ 6 debugline 735
+ 7 swap
+ 8 setproperty _typeHierarchyCache
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="19627")]
+ private var _typeSelectorCache:Object
+
+ [__go_to_definition_help(pos="19701")]
+ public function get typeSelectorCache():Object
+ {
+ // derivedName typeSelectorCache
+ // method_info 20
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _typeSelectorCache
+ 4 debugline 752
+ 5 pushnull
+ 6 equals
+ 7 debugline 752
+ 8 iffalse bb2
+ bb1
+ succs=[bb2]
+ 9 debugline 753
+ 10 newobject 0
+ 11 findproperty _typeSelectorCache
+ 12 swap
+ 13 setproperty _typeSelectorCache
+ bb2
+ succs=[]
+ 14 getlex _typeSelectorCache
+ 15 debugline 755
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="19875")]
+ public function set typeSelectorCache(Object):void
+ {
+ // derivedName typeSelectorCache
+ // method_info 21
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _typeSelectorCache
+ 6 debugline 763
+ 7 swap
+ 8 setproperty _typeSelectorCache
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="20313")]
+ public function initProtoChainRoots():void
+ {
+ // derivedName initProtoChainRoots
+ // method_info 22
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 29
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debugline 779
+ 4 pushtrue
+ 5 debugline 779
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 780
+ 10 pushstring "getStyleDeclarations not implemented"
+ 11 call 1
+ 12 pop
+ bb2
+ succs=[]
+ 13 returnvoid
+ }
+
+ [__go_to_definition_help(pos="21096")]
+ public function get selectors():Array
+ {
+ // derivedName selectors
+ // method_info 23
+ // max_stack 2
+ // max_regs 5
+ // scope_depth 0
+ // max_scope 1
+ // code_length 63
+ bb0
+ succs=[bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debugline 807
+ 6 newarray 0
+ 7 coerce Array
+ 8 setlocal1
+ 9 pushbyte 0
+ 10 setlocal 4
+ 11 getlex _selectors
+ 12 setlocal3
+ 13 jump bb2
+ bb1
+ succs=[bb2]
+ 14 label
+ 15 getlocal3
+ 16 getlocal 4
+ 17 nextname
+ 18 coerce_s
+ 19 setlocal2
+ 20 getlocal1
+ 21 getlocal2
+ 22 debugline 809
+ 23 callpropvoid
+ bb2
+ succs=[bb1,bb3]
+ 24 hasnext2
+ 25 iftrue bb1
+ bb3
+ succs=[]
+ 26 getlocal1
+ 27 debugline 820
+ 28 returnvalue
+ }
+
+ [__go_to_definition_help(pos="21728")]
+ public function hasAdvancedSelectors():Boolean
+ {
+ // derivedName hasAdvancedSelectors
+ // method_info 24
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 24
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex _hasAdvancedSelectors
+ 4 debugline 835
+ 5 iffalse bb3
+ bb1
+ succs=[]
+ 6 debugline 836
+ 7 pushtrue
+ 8 returnvalue
+ bb2
+ succs=[bb3]
+ 9 debugline 842
+ bb3
+ succs=[]
+ 10 pushfalse
+ 11 returnvalue
+ }
+
+ [__go_to_definition_help(pos="22040")]
+ public function hasPseudoCondition(String):Boolean
+ {
+ // derivedName hasPseudoCondition
+ // method_info 25
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 50
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlex _pseudoCSSStates
+ 5 debugline 852
+ 6 pushnull
+ 7 equals
+ 8 not
+ 9 dup
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 pop [...]
+ 12 getlex _pseudoCSSStates [...]
+ 13 getlocal1 [...]
+ 14 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 15 pushnull [...]
+ 16 equals [...]
+ 17 not [...]
+ 18 debugline [...]
+ bb2
+ succs=[bb5,bb3]
+ 19 iffalse bb5
+ bb3
+ succs=[]
+ 20 debugline 853
+ 21 pushtrue
+ 22 returnvalue
+ bb4
+ succs=[bb5]
+ 23 debugline 859
+ bb5
+ succs=[]
+ 24 pushfalse
+ 25 returnvalue
+ }
+
+ [__go_to_definition_help(pos="22912")]
+ public function getStyleDeclarations(String):Object
+ {
+ // derivedName getStyleDeclarations
+ // method_info 26
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 39
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugline 881
+ 5 pushtrue
+ 6 debugline 881
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 882
+ 11 pushstring "getStyleDeclarations not implemented"
+ 12 call 1
+ 13 pop
+ 14 debugline 925
+ bb2
+ succs=[]
+ 15 pushnull
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="24226")]
+ private function isUnique(*,int,Array):Boolean
+ {
+ // derivedName isUnique
+ // method_info 27
+ // max_stack 2
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 getlocal3
+ 7 getlocal1
+ 8 debugline 929
+ 9 callproperty
+ 10 pushbyte 0
+ 11 greaterequals
+ 12 returnvalue
+ }
+
+ [__go_to_definition_help(pos="25570")]
+ public function getStyleDeclaration(String):mx.styles::CSSStyleDeclaration
+ {
+ // derivedName getStyleDeclaration
+ // method_info 28
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 39
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugline 964
+ 5 pushtrue
+ 6 debugline 964
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 965
+ 11 pushstring "getStyleDeclaration not implemented"
+ 12 call 1
+ 13 pop
+ 14 debugline 982
+ bb2
+ succs=[]
+ 15 pushnull
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="28321")]
+ public function getMergedStyleDeclaration(String):mx.styles::CSSStyleDeclaration
+ {
+ // derivedName getMergedStyleDeclaration
+ // method_info 29
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 39
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugline 1030
+ 5 pushtrue
+ 6 debugline 1030
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 1031
+ 11 pushstring "getMergedStyleDeclaration not implemented"
+ 12 call 1
+ 13 pop
+ 14 debugline 1048
+ bb2
+ succs=[]
+ 15 pushnull
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="30681")]
+ public function setStyleDeclaration(String,mx.styles::CSSStyleDeclaration,Boolean):void
+ {
+ // derivedName setStyleDeclaration
+ // method_info 30
+ // max_stack 3
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 47
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debugline 1091
+ 7 pushtrue
+ 8 debugline 1091
+ 9 iffalse bb2
+ bb1
+ succs=[bb2]
+ 10 getlex trace
+ 11 getglobalscope
+ 12 debugline 1092
+ 13 pushstring "setStyleDeclaration not implemented"
+ 14 call 1
+ 15 pop
+ bb2
+ succs=[]
+ 16 returnvoid
+ }
+
+ [__go_to_definition_help(pos="35167")]
+ public function clearStyleDeclaration(String,Boolean):void
+ {
+ // derivedName clearStyleDeclaration
+ // method_info 31
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 41
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debugline 1226
+ 6 pushtrue
+ 7 debugline 1226
+ 8 iffalse bb2
+ bb1
+ succs=[bb2]
+ 9 getlex trace
+ 10 getglobalscope
+ 11 debugline 1227
+ 12 pushstring "clearStyleDeclaration not implemented"
+ 13 call 1
+ 14 pop
+ bb2
+ succs=[]
+ 15 returnvoid
+ }
+
+ [__go_to_definition_help(pos="37187")]
+ public function styleDeclarationsChanged():void
+ {
+ // derivedName styleDeclarationsChanged
+ // method_info 32
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 29
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debugline 1306
+ 4 pushtrue
+ 5 debugline 1306
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 1307
+ 10 pushstring "styleDeclarationsChanged not implemented"
+ 11 call 1
+ 12 pop
+ bb2
+ succs=[]
+ 13 returnvoid
+ }
+
+ [__go_to_definition_help(pos="38325")]
+ public function registerInheritingStyle(String):void
+ {
+ // derivedName registerInheritingStyle
+ // method_info 33
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 48
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex _inheritingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 8 pushtrue [...]
+ 9 equals [...]
+ 10 not [...]
+ 11 debugline [...]
+ 12 iffalse bb2 [...]
+ bb1
+ succs=[bb2]
+ 13 getlex _inheritingStyles [...]
+ 14 getlocal1 [...]
+ 15 debugline [...]
+ 16 pushtrue [...]
+ 17 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS [...]
+ 18 debugline [...]
+ 19 pushnull [...]
+ 20 findproperty mergedInheritingStylesCache [...]
+ 21 swap [...]
+ 22 setproperty mergedInheritingStylesCache [...]
+ bb2
+ succs=[]
+ 23 returnvoid
+ }
+
+ [__go_to_definition_help(pos="39005")]
+ public function isInheritingStyle(String):Boolean
+ {
+ // derivedName isInheritingStyle
+ // method_info 34
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 58
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlex mergedInheritingStylesCache
+ 5 debugline 1366
+ 6 iffalse bb2
+ bb1
+ succs=[]
+ 7 getlex mergedInheritingStylesCache [...]
+ 8 getlocal1 [...]
+ 9 debugline [...]
+ 10 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 11 pushtrue [...]
+ 12 equals [...]
+ 13 returnvalue [...]
+ bb2
+ succs=[bb3,bb5]
+ 14 getlex _inheritingStyles [...]
+ 15 getlocal1 [...]
+ 16 debugline [...]
+ 17 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 18 pushtrue [...]
+ 19 equals [...]
+ 20 debugline [...]
+ 21 iffalse bb5 [...]
+ bb3
+ succs=[]
+ 22 debugline 1370
+ 23 pushtrue
+ 24 returnvalue
+ bb4
+ succs=[bb5]
+ 25 debugline 1377
+ bb5
+ succs=[]
+ 26 pushfalse
+ 27 returnvalue
+ }
+
+ [__go_to_definition_help(pos="39706")]
+ public function isInheritingTextFormatStyle(String):Boolean
+ {
+ // derivedName isInheritingTextFormatStyle
+ // method_info 35
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 38
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex inheritingTextFormatStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 8 pushtrue [...]
+ 9 equals [...]
+ 10 debugline [...]
+ 11 iffalse bb3 [...]
+ bb1
+ succs=[]
+ 12 debugline 1396
+ 13 pushtrue
+ 14 returnvalue
+ bb2
+ succs=[bb3]
+ 15 debugline 1403
+ bb3
+ succs=[]
+ 16 pushfalse
+ 17 returnvalue
+ }
+
+ [__go_to_definition_help(pos="40472")]
+ public function registerSizeInvalidatingStyle(String):void
+ {
+ // derivedName registerSizeInvalidatingStyle
+ // method_info 36
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex sizeInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 pushtrue [...]
+ 8 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/ [...]
+ 9 returnvoid [...]
+ }
+
+ [__go_to_definition_help(pos="41197")]
+ public function isSizeInvalidatingStyle(String):Boolean
+ {
+ // derivedName isSizeInvalidatingStyle
+ // method_info 37
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 38
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex sizeInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 8 pushtrue [...]
+ 9 equals [...]
+ 10 debugline [...]
+ 11 iffalse bb3 [...]
+ bb1
+ succs=[]
+ 12 debugline 1445
+ 13 pushtrue
+ 14 returnvalue
+ bb2
+ succs=[bb3]
+ 15 debugline 1452
+ bb3
+ succs=[]
+ 16 pushfalse
+ 17 returnvalue
+ }
+
+ [__go_to_definition_help(pos="41988")]
+ public function registerParentSizeInvalidatingStyle(String):void
+ {
+ // derivedName registerParentSizeInvalidatingStyle
+ // method_info 38
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex parentSizeInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 pushtrue [...]
+ 8 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/ [...]
+ 9 returnvoid [...]
+ }
+
+ [__go_to_definition_help(pos="42785")]
+ public function isParentSizeInvalidatingStyle(String):Boolean
+ {
+ // derivedName isParentSizeInvalidatingStyle
+ // method_info 39
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 38
+ bb0
+ succs=[bb3,bb1]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex parentSizeInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 8 pushtrue [...]
+ 9 equals [...]
+ 10 debugline [...]
+ 11 iffalse bb3 [...]
+ bb1
+ succs=[]
+ 12 debugline 1497
+ 13 pushtrue
+ 14 returnvalue
+ bb2
+ succs=[bb3]
+ 15 debugline 1504
+ bb3
+ succs=[]
+ 16 pushfalse
+ 17 returnvalue
+ }
+
+ [__go_to_definition_help(pos="43591")]
+ public function registerParentDisplayListInvalidatingStyle(String):void
+ {
+ // derivedName registerParentDisplayListInvalidatingStyle
+ // method_info 40
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex parentDisplayListInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 pushtrue [...]
+ 8 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/ [...]
+ 9 returnvoid [...]
+ }
+
+ [__go_to_definition_help(pos="44498")]
+ public function isParentDisplayListInvalidatingStyle(String):Boolean
+ {
+ // derivedName isParentDisplayListInvalidatingStyle
+ // method_info 41
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 38
+ bb0
+ succs=[bb3,bb1]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex parentDisplayListInvalidatingStyles [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 8 pushtrue [...]
+ 9 equals [...]
+ 10 debugline [...]
+ 11 iffalse bb3 [...]
+ bb1
+ succs=[]
+ 12 debugline 1550
+ 13 pushtrue
+ 14 returnvalue
+ bb2
+ succs=[bb3]
+ 15 debugline 1557
+ bb3
+ succs=[]
+ 16 pushfalse
+ 17 returnvalue
+ }
+
+ [__go_to_definition_help(pos="45206")]
+ public function registerColorName(String,uint):void
+ {
+ // derivedName registerColorName
+ // method_info 42
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 30
+ bb0
+ succs=[]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 debug [...]
+ 5 getlex colorNames [...]
+ 6 getlocal1 [...]
+ 7 debugline [...]
+ 8 callproperty [...]
+ 9 getlocal2 [...]
+ 10 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS [...]
+ 11 returnvoid [...]
+ }
+
+ [__go_to_definition_help(pos="45793")]
+ public function isColorName(String):Boolean
+ {
+ // derivedName isColorName
+ // method_info 43
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 42
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 getlex colorNames [...]
+ 5 getlocal1 [...]
+ 6 debugline [...]
+ 7 callproperty [...]
+ 8 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/A [...]
+ 9 pushundefined [...]
+ 10 strictequals [...]
+ 11 not [...]
+ 12 debugline [...]
+ 13 iffalse bb3 [...]
+ bb1
+ succs=[]
+ 14 debugline 1595
+ 15 pushtrue
+ 16 returnvalue
+ bb2
+ succs=[bb3]
+ 17 debugline 1602
+ bb3
+ succs=[]
+ 18 pushfalse
+ 19 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47255")]
+ public function getColorName(Object):uint
+ {
+ // derivedName getColorName
+ // method_info 44
+ // max_stack 5
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 242
+ bb0
+ succs=[bb1,bb17]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 pushnan
+ 7 setlocal2
+ 8 getlocal1
+ 9 getlex String
+ 10 debugline 1638
+ 11 istypelate
+ 12 debugline 1638
+ 13 iffalse bb17
+ bb1
+ succs=[bb2,bb6]
+ 14 getlocal1
+ 15 debugline 1640
+ 16 pushbyte 0
+ 17 callproperty
+ 18 pushstring "#"
+ 19 equals
+ 20 debugline 1640
+ 21 iffalse bb6
+ bb2
+ succs=[bb3,bb4]
+ 22 getlex Number
+ 23 getglobalscope
+ 24 debugline 1643
+ 25 pushstring "0x"
+ 26 getlocal1
+ 27 pushbyte 1
+ 28 callproperty
+ 29 add
+ 30 call 1
+ 31 convert_d
+ 32 setlocal2
+ 33 getlex isNaN
+ 34 debugline 1644
+ 35 getglobalscope
+ 36 getlocal2
+ 37 call 1
+ 38 iffalse bb4
+ bb3
+ succs=[bb5]
+ 39 pushuint
+ 40 jump bb5
+ bb4
+ succs=[bb5]
+ 41 getlex uint
+ 42 getglobalscope
+ 43 getlocal2
+ 44 call 1
+ bb5
+ succs=[]
+ 45 returnvalue
+ bb6
+ succs=[bb7,bb8]
+ 46 getlocal1
+ 47 debugline 1647
+ 48 pushbyte 1
+ 49 callproperty
+ 50 pushstring "x"
+ 51 equals
+ 52 dup
+ 53 iffalse bb8
+ bb7
+ succs=[bb8]
+ 54 pop
+ 55 getlocal1
+ 56 pushbyte 0
+ 57 callproperty
+ 58 pushstring "0"
+ 59 equals
+ 60 debugline 1647
+ bb8
+ succs=[bb9,bb13]
+ 61 iffalse bb13
+ bb9
+ succs=[bb10,bb11]
+ 62 getlex Number
+ 63 debugline 1650
+ 64 getglobalscope
+ 65 getlocal1
+ 66 call 1
+ 67 convert_d
+ 68 setlocal2
+ 69 getlex isNaN
+ 70 debugline 1651
+ 71 getglobalscope
+ 72 getlocal2
+ 73 call 1
+ 74 iffalse bb11
+ bb10
+ succs=[bb12]
+ 75 pushuint
+ 76 jump bb12
+ bb11
+ succs=[bb12]
+ 77 getlex uint
+ 78 getglobalscope
+ 79 getlocal2
+ 80 call 1
+ bb12
+ succs=[]
+ 81 returnvalue
+ bb13
+ succs=[bb14]
+ 82 getlex colorNames [...]
+ 83 getlocal1 [...]
+ 84 debugline [...]
+ 85 callproperty [...]
+ 86 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/A [...]
+ 87 setlocal3 [...]
+ 88 getlocal3 [...]
+ 89 debugline [...]
+ 90 pushundefined [...]
+ 91 strictequals [...]
+ 92 debugline [...]
+ 93 iffalse bb14 [...]
+ bb14
+ succs=[bb16,bb15]
+ 94 getlocal3
+ 95 debugline 1666
+ 96 pushundefined
+ 97 strictequals
+ 98 debugline 1666
+ 99 iffalse bb16
+ bb15
+ succs=[]
+ 100 debugline 1667
+ 101 pushuint
+ 102 returnvalue
+ bb16
+ succs=[]
+ 103 getlex uint
+ 104 debugline 1669
+ 105 getglobalscope
+ 106 getlocal3
+ 107 call 1
+ 108 returnvalue
+ bb17
+ succs=[]
+ 109 getlex uint
+ 110 debugline 1672
+ 111 getglobalscope
+ 112 getlocal1
+ 113 call 1
+ 114 returnvalue
+ }
+
+ [__go_to_definition_help(pos="48717")]
+ public function getColorNames(Array):void
+ {
+ // derivedName getColorNames
+ // method_info 45
+ // max_stack 4
+ // max_regs 5
+ // scope_depth 0
+ // max_scope 1
+ // code_length 150
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 getlocal1
+ 8 debugline 1692
+ 9 not
+ 10 debugline 1692
+ 11 iffalse bb2
+ bb1
+ succs=[]
+ 12 debugline 1693
+ 13 returnvoid
+ bb2
+ succs=[bb9]
+ 14 getlocal1
+ 15 debugline 1695
+ 16 getproperty length
+ 17 convert_i
+ 18 setlocal2
+ 19 debugline 1696
+ 20 pushbyte 0
+ 21 setlocal3
+ 22 debugline 1696
+ 23 jump bb9
+ bb3
+ succs=[bb5,bb4]
+ 24 label [...]
+ 25 getlocal1 [...]
+ 26 getlocal3 [...]
+ 27 debugline [...]
+ 28 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ 29 pushnull [...]
+ 30 equals [...]
+ 31 not [...]
+ 32 dup [...]
+ 33 iffalse bb5 [...]
+ bb4
+ succs=[bb5]
+ 34 pop [...]
+ 35 getlex isNaN [...]
+ 36 getglobalscope [...]
+ 37 getlocal1 [...]
+ 38 getlocal3 [...]
+ 39 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/ [...]
+ 40 call [...]
+ 41 debugline [...]
+ bb5
+ succs=[bb6,bb8]
+ 42 iffalse bb8
+ bb6
+ succs=[bb7,bb8]
+ 43 findpropstrict getColorName [...]
+ 44 getlocal1 [...]
+ 45 getlocal3 [...]
+ 46 debugline [...]
+ 47 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/ [...]
+ 48 callproperty [...]
+ 49 convert_u [...]
+ 50 dup [...]
+ 51 setlocal [...]
+ 52 debugline [...]
+ 53 pushuint [...]
+ 54 equals [...]
+ 55 not [...]
+ 56 debugline [...]
+ 57 iffalse bb8 [...]
+ bb7
+ succs=[bb8]
+ 58 getlocal1 [...]
+ 59 getlocal3 [...]
+ 60 getlocal [...]
+ 61 debugline [...]
+ 62 setproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",ProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3 [...]
+ bb8
+ succs=[bb9]
+ 63 inclocal_i 3
+ 64 debugline 1696
+ bb9
+ succs=[bb10,bb3]
+ 65 getlocal3
+ 66 getlocal2
+ 67 iflt bb3
+ bb10
+ succs=[]
+ 68 returnvoid
+ }
+
+ [__go_to_definition_help(pos="49899")]
+ public function isValidStyleValue(*):Boolean
+ {
+ // derivedName isValidStyleValue
+ // method_info 46
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb3,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 getlocal1
+ 5 debugline 1735
+ 6 pushundefined
+ 7 strictequals
+ 8 not
+ 9 debugline 1735
+ 10 iffalse bb3
+ bb1
+ succs=[]
+ 11 debugline 1736
+ 12 pushtrue
+ 13 returnvalue
+ bb2
+ succs=[bb3]
+ 14 debugline 1743
+ bb3
+ succs=[]
+ 15 pushfalse
+ 16 returnvalue
+ }
+
+ [__go_to_definition_help(pos="54442")]
+ public function acceptMediaList(String):Boolean
+ {
+ // derivedName acceptMediaList
+ // method_info 47
+ // max_stack 1
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 16
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugline 1913
+ 5 pushfalse
+ 6 returnvalue
+ }
+
+ public static function mx.styles::StyleManagerImpl$():*
+ {
+ // derivedName null
+ // method_info 48
+ // max_stack 6
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 66
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex __AS3__.vec::Vector
+ 4 getlex String
+ 5 debugline 224
+ 6 applytype 1
+ 7 construct 0
+ 8 findproperty propList1
+ 9 swap
+ 10 setproperty propList1
+ 11 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 12 getlex __AS3__.vec::Vector
+ 13 getlex String
+ 14 debugline 225
+ 15 applytype 1
+ 16 construct 0
+ 17 findproperty propList2
+ 18 swap
+ 19 setproperty propList2
+ 20 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 21 debugline 862
+ 22 pushstring "class"
+ 23 pushstring "id"
+ 24 pushstring "pseudo"
+ 25 pushstring "unconditional"
+ 26 newarray 4
+ 27 findproperty propNames
+ 28 swap
+ 29 setproperty propNames
+ 30 returnvoid
+ }
+
+ [__go_to_definition_help(pos="2613")]
+ private static var instance:mx.styles::IStyleManager2
+
+ [__go_to_definition_help(pos="2873")]
+ public static function init(mx.core::IFlexModuleFactory):void
+ {
+ // derivedName init
+ // method_info 7
+ // max_stack 5
+ // max_regs 9
+ // scope_depth 0
+ // max_scope 1
+ // code_length 189
+ bb0
+ succs=[bb1,bb7]
+ 0 getlocal0 [...]
+ 1 pushscope [...]
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as" [...]
+ 3 debug [...]
+ 4 debug [...]
+ 5 debug [...]
+ 6 debug [...]
+ 7 debug [...]
+ 8 debug [...]
+ 9 getlocal1 [...]
+ 10 debugline [...]
+ 11 callproperty [...]
+ 12 pushstring "styleDataClassName" [...]
+ 13 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin",ProtectedNs:"mx.styles:St [...]
+ 14 coerce_s [...]
+ 15 setlocal2 [...]
+ 16 getlocal2 [...]
+ 17 debugline [...]
+ 18 iffalse bb7 [...]
+ bb1
+ succs=[bb2,bb3]
+ 19 getlocal1
+ 20 debugline 104
+ 21 pushstring "mx.styles::IStyleManager2"
+ 22 callproperty
+ 23 getlocal0
+ 24 astypelate
+ 25 coerce mx.styles::StyleManagerImpl
+ 26 setlocal3
+ 27 getlocal3
+ 28 debugline 105
+ 29 not
+ 30 debugline 105
+ 31 iffalse bb3
+ bb2
+ succs=[bb3]
+ 32 debugline 106
+ 33 getlocal0
+ 34 getlocal1
+ 35 construct 1
+ 36 coerce mx.styles::StyleManagerImpl
+ 37 setlocal3
+ bb3
+ succs=[bb5]
+ 38 getlocal1 [...]
+ 39 debugline [...]
+ 40 callproperty [...]
+ 41 pushstring "currentDomain" [...]
+ 42 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin",ProtectedNs:"mx.styles:St [...]
+ 43 getlocal2 [...]
+ 44 callproperty [...]
+ 45 coerce Class [...]
+ 46 dup [...]
+ 47 setlocal [...]
+ 48 debugline [...]
+ 49 pushstring "inheritingStyles" [...]
+ 50 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin",ProtectedNs:"mx.styles:St [...]
+ 51 coerce Array [...]
+ 52 setlocal [...]
+ 53 pushbyte [...]
+ 54 setlocal [...]
+ 55 getlocal [...]
+ 56 setlocal [...]
+ 57 jump bb5 [...]
+ bb4
+ succs=[bb5]
+ 58 label
+ 59 getlocal 7
+ 60 getlocal 8
+ 61 nextvalue
+ 62 coerce_s
+ 63 setlocal 6
+ 64 getlocal3
+ 65 getlocal 6
+ 66 debugline 112
+ 67 callpropvoid
+ bb5
+ succs=[bb6,bb4]
+ 68 hasnext2
+ 69 iftrue bb4
+ bb6
+ succs=[bb7]
+ 70 findpropstrict generateCSSStyleDeclarations [...]
+ 71 getlocal3 [...]
+ 72 getlocal [...]
+ 73 debugline [...]
+ 74 pushstring "factoryFunctions" [...]
+ 75 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin",ProtectedNs:"mx.styles: [...]
+ 76 getlocal [...]
+ 77 pushstring "data" [...]
+ 78 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin",ProtectedNs:"mx.styles: [...]
+ 79 callpropvoid [...]
+ 80 getlocal3 [...]
+ 81 debugline [...]
+ 82 callpropvoid [...]
+ bb7
+ succs=[]
+ 83 returnvoid
+ }
+
+ [__go_to_definition_help(pos="3561")]
+ public static function generateCSSStyleDeclarations(mx.styles::StyleManagerImpl,Object,Array,Array,Object):void
+ {
+ // derivedName generateCSSStyleDeclarations
+ // method_info 8
+ // max_stack 3
+ // max_regs 6
+ // scope_depth 0
+ // max_scope 1
+ // code_length 56
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 debug
+ 8 debugline 121
+ 9 pushtrue
+ 10 debugline 121
+ 11 iffalse bb2
+ bb1
+ succs=[bb2]
+ 12 getlex trace
+ 13 getglobalscope
+ 14 debugline 122
+ 15 pushstring "generateCSSStyleDeclarations not implemented"
+ 16 call 1
+ 17 pop
+ bb2
+ succs=[]
+ 18 returnvoid
+ }
+
+ [__go_to_definition_help(pos="6929")]
+ private static var propList1:__AS3__.vec::Vector.<String>
+
+ [__go_to_definition_help(pos="7000")]
+ private static var propList2:__AS3__.vec::Vector.<String>
+
+ [__go_to_definition_help(pos="7102")]
+ private static function compareFactories(Object,Object):int
+ {
+ // derivedName compareFactories
+ // method_info 9
+ // max_stack 4
+ // max_regs 11
+ // scope_depth 0
+ // max_scope 1
+ // code_length 196
+ bb0
+ succs=[bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 getlex propList1
+ 7 getlex propList2
+ 8 debugline 232
+ 9 pushbyte 0
+ 10 dup
+ 11 setlocal 4
+ 12 setproperty length
+ 13 getlocal 4
+ 14 setproperty length
+ 15 pushbyte 0
+ 16 setlocal 6
+ 17 getlocal1
+ 18 setlocal 5
+ 19 jump bb2
+ bb1
+ succs=[bb2]
+ 20 label
+ 21 getlocal 5
+ 22 getlocal 6
+ 23 nextname
+ 24 coerce_s
+ 25 setlocal3
+ 26 getlex propList1
+ 27 getlocal3
+ 28 debugline 234
+ 29 callpropvoid
+ bb2
+ succs=[bb1,bb3]
+ 30 hasnext2
+ 31 iftrue bb1
+ bb3
+ succs=[bb5]
+ 32 pushbyte 0
+ 33 setlocal 8
+ 34 getlocal2
+ 35 setlocal 7
+ 36 jump bb5
+ bb4
+ succs=[bb5]
+ 37 label
+ 38 getlocal 7
+ 39 getlocal 8
+ 40 nextname
+ 41 coerce_s
+ 42 setlocal3
+ 43 getlex propList2
+ 44 getlocal3
+ 45 debugline 237
+ 46 callpropvoid
+ bb5
+ succs=[bb6,bb4]
+ 47 hasnext2
+ 48 iftrue bb4
+ bb6
+ succs=[bb7,bb8]
+ 49 getlex propList1
+ 50 debugline 239
+ 51 getproperty length
+ 52 getlex propList2
+ 53 getproperty length
+ 54 equals
+ 55 not
+ 56 debugline 239
+ 57 iffalse bb8
+ bb7
+ succs=[]
+ 58 debugline 240
+ 59 pushbyte 1
+ 60 returnvalue
+ bb8
+ succs=[bb11]
+ 61 pushbyte 0
+ 62 setlocal 10
+ 63 getlex propList1
+ 64 setlocal 9
+ 65 jump bb11
+ bb9
+ succs=[bb10,bb11]
+ 66 label
+ 67 getlocal 9
+ 68 getlocal 10
+ 69 nextvalue
+ 70 coerce_s
+ 71 setlocal3
+ 72 getlocal1
+ 73 getlocal3
+ 74 debugline 244
+ 75 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 76 getlocal2
+ 77 getlocal3
+ 78 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 79 strictequals
+ 80 not
+ 81 debugline 244
+ 82 iffalse bb11
+ bb10
+ succs=[]
+ 83 debugline 245
+ 84 pushbyte 1
+ 85 returnvalue
+ bb11
+ succs=[bb9,bb12]
+ 86 hasnext2
+ 87 iftrue bb9
+ bb12
+ succs=[]
+ 88 debugline 248
+ 89 pushbyte 0
+ 90 returnvalue
+ }
+
+ [__go_to_definition_help(pos="7498")]
+ public static function getInstance():mx.styles::IStyleManager2
+ {
+ // derivedName getInstance
+ // method_info 10
+ // max_stack 6
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 94
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 getlex instance
+ 4 debugline 256
+ 5 not
+ 6 debugline 256
+ 7 iffalse bb3
+ bb1
+ succs=[bb3,bb2]
+ 8 getlex mx.styles::IStyleManager2
+ 9 getglobalscope
+ 10 getlex mx.core::IFlexModuleFactory
+ 11 getglobalscope
+ 12 getlex mx.managers::SystemManagerGlobals
+ 13 debugline 262
+ 14 getproperty topLevelSystemManagers
+ 15 pushbyte 0
+ 16 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 17 call 1
+ 18 debugline 263
+ 19 pushstring "mx.styles::IStyleManager2"
+ 20 debugline 262
+ 21 callproperty
+ 22 call 1
+ 23 findproperty instance
+ 24 swap
+ 25 setproperty instance
+ 26 getlex instance
+ 27 debugline 265
+ 28 not
+ 29 debugline 265
+ 30 iffalse bb3
+ bb2
+ succs=[bb3]
+ 31 getlocal0
+ 32 getlex mx.managers::SystemManagerGlobals
+ 33 debugline 266
+ 34 getproperty topLevelSystemManagers
+ 35 pushbyte 0
+ 36 getproperty <error> MultinameL: {PrivateNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"mx.styles:StyleManagerImpl",StaticProtectedNs:"org.apache.royale.events:EventDispatcher",StaticProtectedNs:"flash.events:EventDispatcher",StaticProtectedNs:"Object",Ns:"http://www.adobe.com/2006/flex/mx/internal",PackageNs:"mx.styles",PackageInternalNs:"mx.styles",PrivateNs:"FilePrivateNS:StyleManagerImpl",PackageNs:"",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 37 construct 1
+ 38 findproperty instance
+ 39 swap
+ 40 setproperty instance
+ bb3
+ succs=[]
+ 41 getlex instance
+ 42 debugline 269
+ 43 returnvalue
+ }
+
+ [__go_to_definition_help(pos="16652")]
+ private static var _qualifiedTypeSelectors:Boolean = true
+
+ [__go_to_definition_help(pos="22294")]
+ private static var propNames:Array
+}
+
+// class_id=3 slot_id=0
+[__go_to_definition_help(pos="55699")]
+[__go_to_ctor_definition_help(pos="56085")]
+private class StyleEventDispatcher extends org.apache.royale.events::EventDispatcher
+{
+
+ // method_id=50
+ public function StyleEventDispatcher(mx.modules::IModuleInfo):*
+ {
+ // derivedName StyleEventDispatcher
+ // method_info 50
+ // max_stack 1
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 18
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/styles;StyleManagerImpl.as"
+ 3 debug
+ 4 debugline 1976
+ 5 getlocal0
+ 6 constructsuper 0
+ 7 returnvoid
+ }
+
+ public static function StyleEventDispatcher$():*
+ {
+ // derivedName null
+ // method_info 51
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+// class_id=4 slot_id=0
+[__go_to_definition_help(pos="58780")]
+private class CSSClass extends Object
+{
+
+ // method_id=53
+ public function CSSClass():*
+ {
+ // derivedName null
+ // method_info 53
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function CSSClass$():*
+ {
+ // derivedName null
+ // method_info 52
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+
+ [__go_to_definition_help(pos="58812")]
+ public static const CSSSelector:int = 0
+
+ [__go_to_definition_help(pos="58854")]
+ public static const CSSCondition:int = 1
+
+ [__go_to_definition_help(pos="58897")]
+ public static const CSSStyleDeclaration:int = 2
+}
+
+// class_id=5 slot_id=0
+[__go_to_definition_help(pos="58935")]
+private class CSSFactory extends Object
+{
+
+ // method_id=55
+ public function CSSFactory():*
+ {
+ // derivedName null
+ // method_info 55
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function CSSFactory$():*
+ {
+ // derivedName null
+ // method_info 54
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+
+ [__go_to_definition_help(pos="58969")]
+ public static const DefaultFactory:int = 0
+
+ [__go_to_definition_help(pos="59014")]
+ public static const Factory:int = 1
+
+ [__go_to_definition_help(pos="59052")]
+ public static const Override:int = 2
+}
+
+// class_id=6 slot_id=0
+[__go_to_definition_help(pos="59079")]
+private class CSSDataType extends Object
+{
+
+ // method_id=57
+ public function CSSDataType():*
+ {
+ // derivedName null
+ // method_info 57
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function CSSDataType$():*
+ {
+ // derivedName null
+ // method_info 56
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+
+ [__go_to_definition_help(pos="59114")]
+ public static const Native:int = 0
+
+ [__go_to_definition_help(pos="59151")]
+ public static const Definition:int = 1
+}
+
+function script2$init():*
+{
+ // derivedName null
+ // method_info 6
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 4
+ // code_length 74
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex org.apache.royale.events::EventDispatcher
+ 8 dup
+ 9 pushscope
+ 10 newclass
+ 11 popscope
+ 12 popscope
+ 13 popscope
+ 14 initproperty mx.styles::StyleManagerImpl
+ 15 getscopeobject 0
+ 16 getlex Object
+ 17 pushscope
+ 18 getlex flash.events::EventDispatcher
+ 19 pushscope
+ 20 getlex org.apache.royale.events::EventDispatcher
+ 21 dup
+ 22 pushscope
+ 23 newclass
+ 24 popscope
+ 25 popscope
+ 26 popscope
+ 27 initproperty StyleEventDispatcher
+ 28 getscopeobject 0
+ 29 getlex Object
+ 30 dup
+ 31 pushscope
+ 32 newclass
+ 33 popscope
+ 34 initproperty CSSClass
+ 35 getscopeobject 0
+ 36 getlex Object
+ 37 dup
+ 38 pushscope
+ 39 newclass
+ 40 popscope
+ 41 initproperty CSSFactory
+ 42 getscopeobject 0
+ 43 getlex Object
+ 44 dup
+ 45 pushscope
+ 46 newclass
+ 47 popscope
+ 48 initproperty CSSDataType
+ 49 returnvoid
+}
+
+// script 3
+
+// class_id=7 slot_id=0
+[__go_to_definition_help(pos="1312")]
+public class ExitWhenDone extends Object
+{
+
+ // method_id=61
+ public function ExitWhenDone():*
+ {
+ // derivedName null
+ // method_info 61
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function ExitWhenDone$():*
+ {
+ // derivedName null
+ // method_info 60
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+
+ [__go_to_definition_help(pos="1488")]
+ public static function init(flash.display::DisplayObject):void
+ {
+ // derivedName init
+ // method_info 59
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 19
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/mustella/src/main/royale;;ExitWhenDone.as"
+ 3 debug
+ 4 getlex UnitTester
+ 5 debugline 45
+ 6 pushtrue
+ 7 setproperty exitWhenDone
+ 8 returnvoid
+ }
+}
+
+function script3$init():*
+{
+ // derivedName null
+ // method_info 58
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 2
+ // code_length 14
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 dup
+ 5 pushscope
+ 6 newclass
+ 7 popscope
+ 8 initproperty ExitWhenDone
+ 9 returnvoid
+}
+
+// script 4
+
+// class_id=8 slot_id=0
+[__go_to_definition_help(pos="1167")]
+public class SendFormattedResultsToLog extends Object
+{
+
+ // method_id=67
+ public function SendFormattedResultsToLog():*
+ {
+ // derivedName null
+ // method_info 67
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ public static function SendFormattedResultsToLog$():*
+ {
+ // derivedName null
+ // method_info 66
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/mustella/src/main/royale;;SendFormattedResultsToLog.as"
+ 3 getlex RegExp
+ 4 debugline 49
+ 5 pushstring "%3D"
+ 6 pushstring "g"
+ 7 construct 2
+ 8 findproperty regExp5
+ 9 swap
+ 10 setproperty regExp5
+ 11 returnvoid
+ }
+
+ [__go_to_definition_help(pos="1356")]
+ public static function init(flash.display::DisplayObject):void
+ {
+ // derivedName init
+ // method_info 63
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 27
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/mustella/src/main/royale;;SendFormattedResultsToLog.as"
+ 3 debug
+ 4 getlex TestOutput
+ 5 debugline 42
+ 6 callproperty
+ 7 pushstring "result"
+ 8 getlex outputWriter
+ 9 callpropvoid
+ 10 returnvoid
+ }
+
+ [__go_to_definition_help(pos="1483")]
+ public static var midURL:String = ""
+
+ [__go_to_definition_help(pos="1525")]
+ public static var regExp5:RegExp
+
+ [__go_to_definition_help(pos="1642")]
+ public static function outputWriter(flash.events::Event):void
+ {
+ // derivedName outputWriter
+ // method_info 64
+ // max_stack 4
+ // max_regs 10
+ // scope_depth 0
+ // max_scope 1
+ // code_length 402
+ bb0
+ succs=[bb5]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/mustella/src/main/royale;;SendFormattedResultsToLog.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 debug
+ 8 debug
+ 9 debug
+ 10 debug
+ 11 debug
+ 12 pushbyte 0
+ 13 setlocal3
+ 14 pushbyte 0
+ 15 setlocal 8
+ 16 getlocal1
+ 17 getlex MustellaLogEvent
+ 18 debugline 60
+ 19 astypelate
+ 20 getproperty msg
+ 21 coerce_s
+ 22 setlocal2
+ 23 debugline 64
+ 24 pushstring ""
+ 25 coerce_s
+ 26 setlocal 4
+ 27 debugline 66
+ 28 pushfalse
+ 29 setlocal 5
+ 30 debugline 67
+ 31 pushfalse
+ 32 setlocal 6
+ 33 getlocal2
+ 34 debugline 71
+ 35 pushstring " msg="
+ 36 pushstring "|msg="
+ 37 callproperty
+ 38 coerce_s
+ 39 setlocal2
+ 40 getlocal2
+ 41 debugline 73
+ 42 pushstring " result="
+ 43 pushstring "|result="
+ 44 callproperty
+ 45 coerce_s
+ 46 setlocal2
+ 47 getlocal2
+ 48 debugline 74
+ 49 pushstring " phase="
+ 50 pushstring "|phase="
+ 51 callproperty
+ 52 coerce_s
+ 53 setlocal2
+ 54 getlocal2
+ 55 debugline 75
+ 56 pushstring " id="
+ 57 pushstring "|id="
+ 58 callproperty
+ 59 coerce_s
+ 60 setlocal2
+ 61 getlocal2
+ 62 debugline 76
+ 63 pushstring " elapsed="
+ 64 pushstring "|elapsed="
+ 65 callproperty
+ 66 coerce_s
+ 67 setlocal2
+ 68 getlocal2
+ 69 debugline 77
+ 70 pushstring " started="
+ 71 pushstring "|started="
+ 72 callproperty
+ 73 coerce_s
+ 74 setlocal2
+ 75 getlocal2
+ 76 debugline 78
+ 77 pushstring " extraInfo="
+ 78 pushstring "|extraInfo="
+ 79 callproperty
+ 80 coerce_s
+ 81 setlocal2
+ 82 getlocal2
+ 83 debugline 80
+ 84 pushstring "|"
+ 85 callproperty
+ 86 coerce Array
+ 87 setlocal 7
+ 88 debugline 84
+ 89 pushbyte 0
+ 90 convert_u
+ 91 setlocal 8
+ 92 debugline 84
+ 93 jump bb5
+ bb1
+ succs=[bb3,bb2]
+ 94 label
+ 95 getlocal 4
+ 96 debugline 86
+ 97 pushstring ""
+ 98 equals
+ 99 debugline 86
+ 100 iffalse bb3
+ bb2
+ succs=[bb4]
+ 101 getlocal 4
+ 102 getlocal 7
+ 103 getlocal 8
+ 104 debugline 87
+ 105 getproperty <error> MultinameL: {PrivateNs:"SendFormattedResultsToLog",StaticProtectedNs:"SendFormattedResultsToLog",StaticProtectedNs:"Object",PackageNs:"flash.net",PackageNs:"",PackageInternalNs:"",PrivateNs:"FilePrivateNS:SendFormattedResultsToLog",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 106 add
+ 107 coerce_s
+ 108 setlocal 4
+ 109 jump bb4
+ bb3
+ succs=[bb4]
+ 110 getlocal 4
+ 111 debugline 89
+ 112 pushstring "&"
+ 113 getlocal 7
+ 114 getlocal 8
+ 115 getproperty <error> MultinameL: {PrivateNs:"SendFormattedResultsToLog",StaticProtectedNs:"SendFormattedResultsToLog",StaticProtectedNs:"Object",PackageNs:"flash.net",PackageNs:"",PackageInternalNs:"",PrivateNs:"FilePrivateNS:SendFormattedResultsToLog",Ns:"http://adobe.com/AS3/2006/builtin"}
+ 116 add
+ 117 add
+ 118 coerce_s
+ 119 setlocal 4
+ bb4
+ succs=[bb5]
+ 120 getlocal 8
+ 121 convert_d
+ 122 increment
+ 123 convert_u
+ 124 setlocal 8
+ 125 debugline 84
+ bb5
+ succs=[bb6,bb1]
+ 126 getlocal 8
+ 127 getlocal 7
+ 128 getproperty length
+ 129 iflt bb1
+ bb6
+ succs=[bb7,bb8]
+ 130 getlocal 4
+ 131 getlex regExp5
+ 132 debugline 92
+ 133 pushstring "="
+ 134 callproperty
+ 135 coerce_s
+ 136 setlocal 4
+ 137 getlex trace
+ 138 debugline 94
+ 139 getglobalscope
+ 140 getlocal 4
+ 141 call 1
+ 142 pop
+ 143 getlocal2
+ 144 debugline 99
+ 145 pushstring "ScriptComplete"
+ 146 callproperty
+ 147 pushbyte 255
+ 148 equals
+ 149 not
+ 150 debugline 99
+ 151 iffalse bb8
+ bb7
+ succs=[bb8]
+ 152 getlex trace
+ 153 getglobalscope
+ 154 debugline 102
+ 155 pushstring "Send ScriptComplete to runner block"
+ 156 call 1
+ 157 pop
+ 158 findpropstrict flash.net::URLLoader
+ 159 debugline 103
+ 160 constructprop
+ 161 coerce flash.net::URLLoader
+ 162 dup
+ 163 setlocal 9
+ 164 debugline 104
+ 165 pushstring "complete"
+ 166 getlex httpEvents
+ 167 callpropvoid
+ 168 getlocal 9
+ 169 debugline 105
+ 170 pushstring "ioError"
+ 171 getlex httpEvents
+ 172 callpropvoid
+ 173 getlocal 9
+ 174 findpropstrict flash.net::URLRequest
+ 175 debugline 106
+ 176 pushstring "http://localhost:"
+ 177 getlex UnitTester
+ 178 getproperty runnerPort
+ 179 add
+ 180 pushstring "/ScriptComplete"
+ 181 add
+ 182 constructprop
+ 183 callpropvoid
+ bb8
+ succs=[]
+ 184 returnvoid
+ }
+
+ [__go_to_definition_help(pos="2954")]
+ public static function httpEvents(flash.events::Event):void
+ {
+ // derivedName httpEvents
+ // method_info 65
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 20
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/mustella/src/main/royale;;SendFormattedResultsToLog.as"
+ 3 debug
+ 4 getlex trace
+ 5 debugline 115
+ 6 getglobalscope
+ 7 getlocal1
+ 8 call 1
+ 9 returnvoid
+ }
+}
+
+function script4$init():*
+{
+ // derivedName null
+ // method_info 62
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 2
+ // code_length 14
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 dup
+ 5 pushscope
+ 6 newclass
+ 7 popscope
+ 8 initproperty SendFormattedResultsToLog
+ 9 returnvoid
+}
+
+// script 5
+
+// class_id=9 slot_id=0
+public interface org.apache.royale.core::IFlexInfo extends *
+{
+
+ // method_id=71
+ public function org.apache.royale.core::IFlexInfo():*
+
+ org.apache.royale.core:IFlexInfo function info():Object
+
+ public static function org.apache.royale.core::IFlexInfo$():*
+ {
+ // derivedName null
+ // method_info 70
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script5$init():*
+{
+ // derivedName null
+ // method_info 68
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IFlexInfo
+ 6 returnvoid
+}
+
+// script 6
+
+// class_id=10 slot_id=0
+public interface org.apache.royale.core::IPopUpHost extends *
+{
+
+ // method_id=75
+ public function org.apache.royale.core::IPopUpHost():*
+
+ org.apache.royale.core:IPopUpHost function get popUpParent():org.apache.royale.core::IParent
+
+ public static function org.apache.royale.core::IPopUpHost$():*
+ {
+ // derivedName null
+ // method_info 74
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script6$init():*
+{
+ // derivedName null
+ // method_info 72
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IPopUpHost
+ 6 returnvoid
+}
+
+// script 7
+
+// class_id=11 slot_id=0
+public interface org.apache.royale.core::IContainer extends *
+ org.apache.royale.core::IParent
+{
+
+ // method_id=80
+ public function org.apache.royale.core::IContainer():*
+
+ org.apache.royale.core:IContainer function childrenAdded():void
+
+ org.apache.royale.core:IContainer function get strandChildren():org.apache.royale.core::IParent
+
+ public static function org.apache.royale.core::IContainer$():*
+ {
+ // derivedName null
+ // method_info 79
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script7$init():*
+{
+ // derivedName null
+ // method_info 76
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IContainer
+ 6 returnvoid
+}
+
+// script 8
+
+// class_id=12 slot_id=0
+public interface org.apache.royale.core::IContainerBaseStrandChildrenHost extends *
+{
+
+ // method_id=89
+ public function org.apache.royale.core::IContainerBaseStrandChildrenHost():*
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function get $numElements():int
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function $addElement(org.apache.royale.core::IChild,Boolean):void
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function $addElementAt(org.apache.royale.core::IChild,int,Boolean):void
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function $removeElement(org.apache.royale.core::IChild,Boolean):void
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function $getElementIndex(org.apache.royale.core::IChild):int
+
+ org.apache.royale.core:IContainerBaseStrandChildrenHost function $getElementAt(int):org.apache.royale.core::IChild
+
+ public static function org.apache.royale.core::IContainerBaseStrandChildrenHost$():*
+ {
+ // derivedName null
+ // method_info 88
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script8$init():*
+{
+ // derivedName null
+ // method_info 81
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IContainerBaseStrandChildrenHost
+ 6 returnvoid
+}
+
+// script 9
+
+// class_id=13 slot_id=0
+public interface org.apache.royale.core::IContentViewHost extends *
+ org.apache.royale.core::IParent
+{
+
+ // method_id=93
+ public function org.apache.royale.core::IContentViewHost():*
+
+ org.apache.royale.core:IContentViewHost function get strandChildren():org.apache.royale.core::IParent
+
+ public static function org.apache.royale.core::IContentViewHost$():*
+ {
+ // derivedName null
+ // method_info 92
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script9$init():*
+{
+ // derivedName null
+ // method_info 90
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IContentViewHost
+ 6 returnvoid
+}
+
+// script 10
+
+// class_id=14 slot_id=0
+public interface org.apache.royale.core::ILayoutParent extends *
+{
+
+ // method_id=97
+ public function org.apache.royale.core::ILayoutParent():*
+
+ org.apache.royale.core:ILayoutParent function getLayoutHost():org.apache.royale.core::ILayoutHost
+
+ public static function org.apache.royale.core::ILayoutParent$():*
+ {
+ // derivedName null
+ // method_info 96
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script10$init():*
+{
+ // derivedName null
+ // method_info 94
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::ILayoutParent
+ 6 returnvoid
+}
+
+// script 11
+
+// class_id=15 slot_id=0
+public interface org.apache.royale.core::ILayoutView extends *
+{
+
+ // method_id=104
+ public function org.apache.royale.core::ILayoutView():*
+
+ org.apache.royale.core:ILayoutView function get width():Number
+
+ org.apache.royale.core:ILayoutView function get height():Number
+
+ org.apache.royale.core:ILayoutView function get numElements():int
+
+ org.apache.royale.core:ILayoutView function getElementAt(int):org.apache.royale.core::IChild
+
+ public static function org.apache.royale.core::ILayoutView$():*
+ {
+ // derivedName null
+ // method_info 103
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script11$init():*
+{
+ // derivedName null
+ // method_info 98
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::ILayoutView
+ 6 returnvoid
+}
+
+// script 12
+
+// class_id=16 slot_id=0
+public interface org.apache.royale.core::IMXMLDocument extends *
+{
+
+ // method_id=110
+ public function org.apache.royale.core::IMXMLDocument():*
+
+ org.apache.royale.core:IMXMLDocument function get MXMLDescriptor():Array
+
+ org.apache.royale.core:IMXMLDocument function setMXMLDescriptor(Object,Array):void
+
+ org.apache.royale.core:IMXMLDocument function generateMXMLAttributes(Array):void
+
+ public static function org.apache.royale.core::IMXMLDocument$():*
+ {
+ // derivedName null
+ // method_info 109
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script12$init():*
+{
+ // derivedName null
+ // method_info 105
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IMXMLDocument
+ 6 returnvoid
+}
+
+// script 13
+
+// class_id=17 slot_id=0
+public interface mx.core::IDataRenderer extends *
+{
+
+ // method_id=115
+ public function mx.core::IDataRenderer():*
+
+ mx.core:IDataRenderer function get data():Object
+
+ mx.core:IDataRenderer function set data(Object):void
+
+ public static function mx.core::IDataRenderer$():*
+ {
+ // derivedName null
+ // method_info 114
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script13$init():*
+{
+ // derivedName null
+ // method_info 111
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IDataRenderer
+ 6 returnvoid
+}
+
+// script 14
+
+// class_id=18 slot_id=0
+[__go_to_definition_help(pos="1885")]
+public class org.apache.royale.core::HTMLElementWrapper extends flash.display::Sprite
+{
+
+ // method_id=119
+ public function org.apache.royale.core::HTMLElementWrapper():*
+ {
+ // derivedName null
+ // method_info 119
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 6
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getlocal0
+ 3 constructsuper 0
+ 4 returnvoid
+ }
+
+ [__go_to_definition_help(pos="2064")]
+ public function addBead(org.apache.royale.core::IBead):void
+ {
+ // derivedName addBead
+ // method_info 117
+ // max_stack 1
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;HTMLElementWrapper.as"
+ 3 debug
+ 4 returnvoid
+ }
+
+ public static function org.apache.royale.core::HTMLElementWrapper$():*
+ {
+ // derivedName null
+ // method_info 118
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script14$init():*
+{
+ // derivedName null
+ // method_info 116
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 7
+ // code_length 38
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex flash.display::DisplayObject
+ 8 pushscope
+ 9 getlex flash.display::InteractiveObject
+ 10 pushscope
+ 11 getlex flash.display::DisplayObjectContainer
+ 12 pushscope
+ 13 getlex flash.display::Sprite
+ 14 dup
+ 15 pushscope
+ 16 newclass
+ 17 popscope
+ 18 popscope
+ 19 popscope
+ 20 popscope
+ 21 popscope
+ 22 popscope
+ 23 initproperty org.apache.royale.core::HTMLElementWrapper
+ 24 returnvoid
+}
+
+// script 15
+
+// class_id=19 slot_id=0
+public interface org.apache.royale.core::ILayoutChild extends *
+ org.apache.royale.core::IChild,org.apache.royale.core::IUIBase
+{
+
+ // method_id=137
+ public function org.apache.royale.core::ILayoutChild():*
+
+ org.apache.royale.core:ILayoutChild function get percentWidth():Number
+
+ org.apache.royale.core:ILayoutChild function set percentWidth(Number):void
+
+ org.apache.royale.core:ILayoutChild function get percentHeight():Number
+
+ org.apache.royale.core:ILayoutChild function set percentHeight(Number):void
+
+ org.apache.royale.core:ILayoutChild function get explicitWidth():Number
+
+ org.apache.royale.core:ILayoutChild function set explicitWidth(Number):void
+
+ org.apache.royale.core:ILayoutChild function get explicitHeight():Number
+
+ org.apache.royale.core:ILayoutChild function set explicitHeight(Number):void
+
+ org.apache.royale.core:ILayoutChild function setHeight(Number,Boolean):void
+
+ org.apache.royale.core:ILayoutChild function setWidth(Number,Boolean):void
+
+ org.apache.royale.core:ILayoutChild function setX(Number):void
+
+ org.apache.royale.core:ILayoutChild function setY(Number):void
+
+ org.apache.royale.core:ILayoutChild function setWidthAndHeight(Number,Number,Boolean):void
+
+ org.apache.royale.core:ILayoutChild function isWidthSizedToContent():Boolean
+
+ org.apache.royale.core:ILayoutChild function isHeightSizedToContent():Boolean
+
+ public static function org.apache.royale.core::ILayoutChild$():*
+ {
+ // derivedName null
+ // method_info 136
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script15$init():*
+{
+ // derivedName null
+ // method_info 120
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::ILayoutChild
+ 6 returnvoid
+}
+
+// script 16
+
+// class_id=20 slot_id=0
+public interface org.apache.royale.core::IParentIUIBase extends *
+ org.apache.royale.core::IParent,org.apache.royale.core::IUIBase
+{
+
+ // method_id=140
+ public function org.apache.royale.core::IParentIUIBase():*
+
+ public static function org.apache.royale.core::IParentIUIBase$():*
+ {
+ // derivedName null
+ // method_info 139
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script16$init():*
+{
+ // derivedName null
+ // method_info 138
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IParentIUIBase
+ 6 returnvoid
+}
+
+// script 17
+
+// class_id=21 slot_id=0
+public interface org.apache.royale.core::IRoyaleElement extends *
+{
+
+ // method_id=145
+ public function org.apache.royale.core::IRoyaleElement():*
+
+ org.apache.royale.core:IRoyaleElement function get royale_wrapper():Object
+
+ org.apache.royale.core:IRoyaleElement function set royale_wrapper(Object):void
+
+ public static function org.apache.royale.core::IRoyaleElement$():*
+ {
+ // derivedName null
+ // method_info 144
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script17$init():*
+{
+ // derivedName null
+ // method_info 141
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IRoyaleElement
+ 6 returnvoid
+}
+
+// script 18
+
+// class_id=22 slot_id=0
+public interface org.apache.royale.core::IStrandWithModel extends *
+ org.apache.royale.core::IStrand
+{
+
+ // method_id=149
+ public function org.apache.royale.core::IStrandWithModel():*
+
+ org.apache.royale.core:IStrandWithModel function get model():Object
+
+ public static function org.apache.royale.core::IStrandWithModel$():*
+ {
+ // derivedName null
+ // method_info 148
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script18$init():*
+{
+ // derivedName null
+ // method_info 146
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IStrandWithModel
+ 6 returnvoid
+}
+
+// script 19
+
+// class_id=23 slot_id=0
+public interface org.apache.royale.core::IStrandWithModelView extends *
+ org.apache.royale.core::IStrandWithModel
+{
+
+ // method_id=153
+ public function org.apache.royale.core::IStrandWithModelView():*
+
+ org.apache.royale.core:IStrandWithModelView function get view():org.apache.royale.core::IBeadView
+
+ public static function org.apache.royale.core::IStrandWithModelView$():*
+ {
+ // derivedName null
+ // method_info 152
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script19$init():*
+{
+ // derivedName null
+ // method_info 150
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IStrandWithModelView
+ 6 returnvoid
+}
+
+// script 20
+
+// class_id=24 slot_id=0
+public interface org.apache.royale.core::IStyleableObject extends *
+ org.apache.royale.events::IEventDispatcher
+{
+
+ // method_id=160
+ public function org.apache.royale.core::IStyleableObject():*
+
+ org.apache.royale.core:IStyleableObject function get className():String
+
+ org.apache.royale.core:IStyleableObject function set className(String):void
+
+ org.apache.royale.core:IStyleableObject function get id():String
+
+ org.apache.royale.core:IStyleableObject function get style():Object
+
+ public static function org.apache.royale.core::IStyleableObject$():*
+ {
+ // derivedName null
+ // method_info 159
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script20$init():*
+{
+ // derivedName null
+ // method_info 154
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IStyleableObject
+ 6 returnvoid
+}
+
+// script 21
+
+// class_id=25 slot_id=0
+[__go_to_definition_help(pos="5742")]
+[__go_to_ctor_definition_help(pos="6114")]
+public class org.apache.royale.core::UIBase extends org.apache.royale.core::HTMLElementWrapper
+ org.apache.royale.core::IStrandWithModelView,org.apache.royale.events::IEventDispatcher,org.apache.royale.core::IParentIUIBase,org.apache.royale.core::IStyleableObject,org.apache.royale.core::ILayoutChild,org.apache.royale.core::IRoyaleElement
+{
+
+ // method_id=227
+ public function org.apache.royale.core::UIBase():*
+ {
+ // derivedName UIBase
+ // method_info 227
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 34
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debugline 186
+ 4 getlocal0
+ 5 constructsuper 0
+ 6 getlex org.apache.royale.events.utils::MouseEventConverter
+ 7 getlocal0
+ 8 debugline 190
+ 9 callpropvoid
+ 10 debugline 191
+ 11 pushtrue
+ 12 findproperty doubleClickEnabled
+ 13 swap
+ 14 setproperty doubleClickEnabled
+ 15 returnvoid
+ }
+
+ [__go_to_definition_help(pos="6513")]
+ public function get $displayObject():flash.display::DisplayObject
+ {
+ // derivedName $displayObject
+ // method_info 162
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlocal0
+ 4 debugline 203
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="6626")]
+ public function get royale_wrapper():Object
+ {
+ // derivedName royale_wrapper
+ // method_info 163
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlocal0
+ 4 debugline 208
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="6723")]
+ public function set royale_wrapper(Object):void
+ {
+ // derivedName royale_wrapper
+ // method_info 164
+ // max_stack 1
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 returnvoid
+ }
+
+ [__go_to_definition_help(pos="6802")]
+ protected var _explicitWidth:Number
+
+ [__go_to_definition_help(pos="7135")]
+ public function get explicitWidth():Number
+ {
+ // derivedName explicitWidth
+ // method_info 165
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _explicitWidth
+ 4 debugline 227
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="7266")]
+ public function set explicitWidth(Number):void
+ {
+ // derivedName explicitWidth
+ // method_info 166
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 90
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _explicitWidth
+ 5 getlocal1
+ 6 debugline 235
+ 7 equals
+ 8 debugline 235
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 236
+ 11 returnvoid
+ bb2
+ succs=[bb3,bb4]
+ 12 getlex isNaN
+ 13 debugline 239
+ 14 getglobalscope
+ 15 getlocal1
+ 16 call 1
+ 17 not
+ 18 debugline 239
+ 19 iffalse bb4
+ bb3
+ succs=[bb4]
+ 20 debugline 240
+ 21 pushnan
+ 22 findproperty _percentWidth
+ 23 swap
+ 24 setproperty _percentWidth
+ bb4
+ succs=[]
+ 25 getlocal1
+ 26 findproperty _explicitWidth
+ 27 debugline 242
+ 28 swap
+ 29 setproperty _explicitWidth
+ 30 findpropstrict dispatchEvent
+ 31 findpropstrict org.apache.royale.events::Event
+ 32 debugline 244
+ 33 pushstring "explicitWidthChanged"
+ 34 constructprop
+ 35 callpropvoid
+ 36 returnvoid
+ }
+
+ [__go_to_definition_help(pos="7554")]
+ protected var _explicitHeight:Number
+
+ [__go_to_definition_help(pos="7886")]
+ public function get explicitHeight():Number
+ {
+ // derivedName explicitHeight
+ // method_info 167
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _explicitHeight
+ 4 debugline 260
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="8021")]
+ public function set explicitHeight(Number):void
+ {
+ // derivedName explicitHeight
+ // method_info 168
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 90
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _explicitHeight
+ 5 getlocal1
+ 6 debugline 268
+ 7 equals
+ 8 debugline 268
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 269
+ 11 returnvoid
+ bb2
+ succs=[bb3,bb4]
+ 12 getlex isNaN
+ 13 debugline 272
+ 14 getglobalscope
+ 15 getlocal1
+ 16 call 1
+ 17 not
+ 18 debugline 272
+ 19 iffalse bb4
+ bb3
+ succs=[bb4]
+ 20 debugline 273
+ 21 pushnan
+ 22 findproperty _percentHeight
+ 23 swap
+ 24 setproperty _percentHeight
+ bb4
+ succs=[]
+ 25 getlocal1
+ 26 findproperty _explicitHeight
+ 27 debugline 275
+ 28 swap
+ 29 setproperty _explicitHeight
+ 30 findpropstrict dispatchEvent
+ 31 findpropstrict org.apache.royale.events::Event
+ 32 debugline 277
+ 33 pushstring "explicitHeightChanged"
+ 34 constructprop
+ 35 callpropvoid
+ 36 returnvoid
+ }
+
+ [__go_to_definition_help(pos="8313")]
+ private var _percentWidth:Number
+
+ [__go_to_definition_help(pos="8828")]
+ public function get percentWidth():Number
+ {
+ // derivedName percentWidth
+ // method_info 169
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _percentWidth
+ 4 debugline 296
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="8951")]
+ public function set percentWidth(Number):void
+ {
+ // derivedName percentWidth
+ // method_info 170
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 90
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _percentWidth
+ 5 getlocal1
+ 6 debugline 305
+ 7 equals
+ 8 debugline 305
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 306
+ 11 returnvoid
+ bb2
+ succs=[bb4,bb3]
+ 12 getlex isNaN
+ 13 debugline 308
+ 14 getglobalscope
+ 15 getlocal1
+ 16 call 1
+ 17 not
+ 18 debugline 308
+ 19 iffalse bb4
+ bb3
+ succs=[bb4]
+ 20 debugline 309
+ 21 pushnan
+ 22 findproperty _explicitWidth
+ 23 swap
+ 24 setproperty _explicitWidth
+ bb4
+ succs=[]
+ 25 getlocal1
+ 26 findproperty _percentWidth
+ 27 debugline 311
+ 28 swap
+ 29 setproperty _percentWidth
+ 30 findpropstrict dispatchEvent
+ 31 findpropstrict org.apache.royale.events::Event
+ 32 debugline 320
+ 33 pushstring "percentWidthChanged"
+ 34 constructprop
+ 35 callpropvoid
+ 36 returnvoid
+ }
+
+ [__go_to_definition_help(pos="9390")]
+ private var _percentHeight:Number
+
+ [__go_to_definition_help(pos="9910")]
+ public function get percentHeight():Number
+ {
+ // derivedName percentHeight
+ // method_info 171
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _percentHeight
+ 4 debugline 339
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="10043")]
+ public function set percentHeight(Number):void
+ {
+ // derivedName percentHeight
+ // method_info 172
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 90
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _percentHeight
+ 5 getlocal1
+ 6 debugline 348
+ 7 equals
+ 8 debugline 348
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 debugline 349
+ 11 returnvoid
+ bb2
+ succs=[bb3,bb4]
+ 12 getlex isNaN
+ 13 debugline 351
+ 14 getglobalscope
+ 15 getlocal1
+ 16 call 1
+ 17 not
+ 18 debugline 351
+ 19 iffalse bb4
+ bb3
+ succs=[bb4]
+ 20 debugline 352
+ 21 pushnan
+ 22 findproperty _explicitHeight
+ 23 swap
+ 24 setproperty _explicitHeight
+ bb4
+ succs=[]
+ 25 getlocal1
+ 26 findproperty _percentHeight
+ 27 debugline 354
+ 28 swap
+ 29 setproperty _percentHeight
+ 30 findpropstrict dispatchEvent
+ 31 findpropstrict org.apache.royale.events::Event
+ 32 debugline 364
+ 33 pushstring "percentHeightChanged"
+ 34 constructprop
+ 35 callpropvoid
+ 36 returnvoid
+ }
+
+ [__go_to_definition_help(pos="10491")]
+ private var _width:Number
+
+ [Bindable("widthChanged")]
+ [__go_to_definition_help(pos="11060")]
+ public override function get width():Number
+ {
+ // derivedName width
+ // method_info 173
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 45
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _width
+ 5 debugline 385
+ 6 convert_d
+ 7 setlocal1
+ 8 getlex isNaN
+ 9 debugline 386
+ 10 getglobalscope
+ 11 getlocal1
+ 12 call 1
+ 13 iffalse bb2
+ bb1
+ succs=[bb2]
+ 14 getlex $width
+ 15 debugline 387
+ 16 convert_d
+ 17 setlocal1
+ bb2
+ succs=[]
+ 18 getlocal1
+ 19 debugline 389
+ 20 returnvalue
+ }
+
+ [__go_to_definition_help(pos="12140")]
+ public override function set width(Number):void
+ {
+ // derivedName width
+ // method_info 174
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 50
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex explicitWidth
+ 5 getlocal1
+ 6 debugline 424
+ 7 strictequals
+ 8 not
+ 9 debugline 424
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty explicitWidth
+ 13 debugline 426
+ 14 swap
+ 15 setproperty explicitWidth
+ bb2
+ succs=[]
+ 16 findpropstrict setWidth
+ 17 getlocal1
+ 18 debugline 429
+ 19 callpropvoid
+ 20 returnvoid
+ }
+
+ [__go_to_definition_help(pos="12884")]
+ public function get $width():Number
+ {
+ // derivedName $width
+ // method_info 175
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 15
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 findpropstrict width
+ 4 getsuper width
+ 5 debugline 458
+ 6 returnvalue
+ }
+
+ [__go_to_definition_help(pos="12948")]
+ private var _height:Number
+
+ [Bindable("heightChanged")]
+ [__go_to_definition_help(pos="13517")]
+ public override function get height():Number
+ {
+ // derivedName height
+ // method_info 176
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 45
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _height
+ 5 debugline 479
+ 6 convert_d
+ 7 setlocal1
+ 8 getlex isNaN
+ 9 debugline 480
+ 10 getglobalscope
+ 11 getlocal1
+ 12 call 1
+ 13 iffalse bb2
+ bb1
+ succs=[bb2]
+ 14 getlex $height
+ 15 debugline 481
+ 16 convert_d
+ 17 setlocal1
+ bb2
+ succs=[]
+ 18 getlocal1
+ 19 debugline 483
+ 20 returnvalue
+ }
+
+ [__go_to_definition_help(pos="14610")]
+ public override function set height(Number):void
+ {
+ // derivedName height
+ // method_info 177
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 50
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex explicitHeight
+ 5 getlocal1
+ 6 debugline 518
+ 7 strictequals
+ 8 not
+ 9 debugline 518
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty explicitHeight
+ 13 debugline 520
+ 14 swap
+ 15 setproperty explicitHeight
+ bb2
+ succs=[]
+ 16 findpropstrict setHeight
+ 17 getlocal1
+ 18 debugline 523
+ 19 callpropvoid
+ 20 returnvoid
+ }
+
+ [__go_to_definition_help(pos="15371")]
+ public function get $height():Number
+ {
+ // derivedName $height
+ // method_info 178
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 15
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 findpropstrict height
+ 4 getsuper height
+ 5 debugline 552
+ 6 returnvalue
+ }
+
+ [__go_to_definition_help(pos="15695")]
+ public function setHeight(Number,Boolean):void
+ {
+ // derivedName setHeight
+ // method_info 179
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 77
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlex _height
+ 6 getlocal1
+ 7 debugline 565
+ 8 strictequals
+ 9 not
+ 10 debugline 565
+ 11 iffalse bb3
+ bb1
+ succs=[bb3,bb2]
+ 12 getlocal1
+ 13 findproperty _height
+ 14 debugline 567
+ 15 swap
+ 16 setproperty _height
+ 17 getlocal2
+ 18 debugline 572
+ 19 not
+ 20 debugline 572
+ 21 iffalse bb3
+ bb2
+ succs=[bb3]
+ 22 findpropstrict dispatchEvent
+ 23 findpropstrict org.apache.royale.events::Event
+ 24 debugline 573
+ 25 pushstring "heightChanged"
+ 26 constructprop
+ 27 callpropvoid
+ bb3
+ succs=[]
+ 28 returnvoid
+ }
+
+ [__go_to_definition_help(pos="16384")]
+ public function setWidth(Number,Boolean):void
+ {
+ // derivedName setWidth
+ // method_info 180
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 77
+ bb0
+ succs=[bb1,bb3]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlex _width
+ 6 getlocal1
+ 7 debugline 587
+ 8 strictequals
+ 9 not
+ 10 debugline 587
+ 11 iffalse bb3
+ bb1
+ succs=[bb2,bb3]
+ 12 getlocal1
+ 13 findproperty _width
+ 14 debugline 589
+ 15 swap
+ 16 setproperty _width
+ 17 getlocal2
+ 18 debugline 594
+ 19 not
+ 20 debugline 594
+ 21 iffalse bb3
+ bb2
+ succs=[bb3]
+ 22 findpropstrict dispatchEvent
+ 23 findpropstrict org.apache.royale.events::Event
+ 24 debugline 595
+ 25 pushstring "widthChanged"
+ 26 constructprop
+ 27 callpropvoid
+ bb3
+ succs=[]
+ 28 returnvoid
+ }
+
+ [__go_to_definition_help(pos="17073")]
+ public function setWidthAndHeight(Number,Number,Boolean):void
+ {
+ // derivedName setWidthAndHeight
+ // method_info 181
+ // max_stack 3
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 162
+ bb0
+ succs=[bb3,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 getlex _width
+ 7 getlocal1
+ 8 debugline 609
+ 9 strictequals
+ 10 not
+ 11 debugline 609
+ 12 iffalse bb3
+ bb1
+ succs=[bb3,bb2]
+ 13 getlocal1
+ 14 findproperty _width
+ 15 debugline 611
+ 16 swap
+ 17 setproperty _width
+ 18 getlocal3
+ 19 debugline 616
+ 20 not
+ 21 debugline 616
+ 22 iffalse bb3
+ bb2
+ succs=[bb3]
+ 23 findpropstrict dispatchEvent
+ 24 findpropstrict org.apache.royale.events::Event
+ 25 debugline 617
+ 26 pushstring "widthChanged"
+ 27 constructprop
+ 28 callpropvoid
+ bb3
+ succs=[bb6,bb4]
+ 29 getlex _height
+ 30 getlocal2
+ 31 debugline 619
+ 32 strictequals
+ 33 not
+ 34 debugline 619
+ 35 iffalse bb6
+ bb4
+ succs=[bb6,bb5]
+ 36 getlocal2
+ 37 findproperty _height
+ 38 debugline 621
+ 39 swap
+ 40 setproperty _height
+ 41 getlocal3
+ 42 debugline 626
+ 43 not
+ 44 debugline 626
+ 45 iffalse bb6
+ bb5
+ succs=[bb6]
+ 46 findpropstrict dispatchEvent
+ 47 findpropstrict org.apache.royale.events::Event
+ 48 debugline 627
+ 49 pushstring "heightChanged"
+ 50 constructprop
+ 51 callpropvoid
+ bb6
+ succs=[]
+ 52 findpropstrict dispatchEvent
+ 53 findpropstrict org.apache.royale.events::Event
+ 54 debugline 629
+ 55 pushstring "sizeChanged"
+ 56 constructprop
+ 57 callpropvoid
+ 58 returnvoid
+ }
+
+ [__go_to_definition_help(pos="18220")]
+ public function isWidthSizedToContent():Boolean
+ {
+ // derivedName isWidthSizedToContent
+ // method_info 182
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 117
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlex isNaN
+ 6 debugline 642
+ 7 getglobalscope
+ 8 getlex _explicitWidth
+ 9 call 1
+ 10 not
+ 11 debugline 642
+ 12 iffalse bb2
+ bb1
+ succs=[]
+ 13 debugline 643
+ 14 pushfalse
+ 15 returnvalue
+ bb2
+ succs=[bb4,bb3]
+ 16 getlex isNaN
+ 17 debugline 644
+ 18 getglobalscope
+ 19 getlex _percentWidth
+ 20 call 1
+ 21 not
+ 22 debugline 644
+ 23 iffalse bb4
+ bb3
+ succs=[]
+ 24 debugline 645
+ 25 pushfalse
+ 26 returnvalue
+ bb4
+ succs=[bb6,bb5]
+ 27 getlex org.apache.royale.core::ValuesManager
+ 28 debugline 646
+ 29 getproperty valuesImpl
+ 30 getlocal0
+ 31 pushstring "left"
+ 32 callproperty
+ 33 setlocal1
+ 34 getlex org.apache.royale.core::ValuesManager
+ 35 debugline 647
+ 36 getproperty valuesImpl
+ 37 getlocal0
+ 38 pushstring "right"
+ 39 callproperty
+ 40 setlocal2
+ 41 getlocal1
+ 42 debugline 648
+ 43 pushundefined
+ 44 strictequals
+ 45 dup
+ 46 iftrue bb6
+ bb5
+ succs=[bb6]
+ 47 pop
+ 48 getlocal2
+ 49 pushundefined
+ 50 strictequals
+ bb6
+ succs=[]
+ 51 returnvalue
+ }
+
+ [__go_to_definition_help(pos="18914")]
+ public function isHeightSizedToContent():Boolean
+ {
+ // derivedName isHeightSizedToContent
+ // method_info 183
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 117
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlex isNaN
+ 6 debugline 662
+ 7 getglobalscope
+ 8 getlex _explicitHeight
+ 9 call 1
+ 10 not
+ 11 debugline 662
+ 12 iffalse bb2
+ bb1
+ succs=[]
+ 13 debugline 663
+ 14 pushfalse
+ 15 returnvalue
+ bb2
+ succs=[bb3,bb4]
+ 16 getlex isNaN
+ 17 debugline 664
+ 18 getglobalscope
+ 19 getlex _percentHeight
+ 20 call 1
+ 21 not
+ 22 debugline 664
+ 23 iffalse bb4
+ bb3
+ succs=[]
+ 24 debugline 665
+ 25 pushfalse
+ 26 returnvalue
+ bb4
+ succs=[bb6,bb5]
+ 27 getlex org.apache.royale.core::ValuesManager
+ 28 debugline 666
+ 29 getproperty valuesImpl
+ 30 getlocal0
+ 31 pushstring "top"
+ 32 callproperty
+ 33 setlocal1
+ 34 getlex org.apache.royale.core::ValuesManager
+ 35 debugline 667
+ 36 getproperty valuesImpl
+ 37 getlocal0
+ 38 pushstring "bottom"
+ 39 callproperty
+ 40 setlocal2
+ 41 getlocal1
+ 42 debugline 668
+ 43 pushundefined
+ 44 strictequals
+ 45 dup
+ 46 iftrue bb6
+ bb5
+ succs=[bb6]
+ 47 pop
+ 48 getlocal2
+ 49 pushundefined
+ 50 strictequals
+ bb6
+ succs=[]
+ 51 returnvalue
+ }
+
+ [__go_to_definition_help(pos="19355")]
+ private var _x:Number
+
+ [__go_to_definition_help(pos="19478")]
+ public override function set x(Number):void
+ {
+ // derivedName x
+ // method_info 184
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 75
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 debugline 679
+ 6 dup
+ 7 findproperty _x
+ 8 swap
+ 9 setproperty _x
+ 10 findproperty x
+ 11 swap
+ 12 setsuper x
+ 13 getlex style
+ 14 debugline 680
+ 15 not
+ 16 debugline 680
+ 17 iffalse bb2
+ bb1
+ succs=[bb3]
+ 18 debugline 681
+ 19 pushstring "left"
+ 20 getlocal1
+ 21 newobject 1
+ 22 findproperty style
+ 23 swap
+ 24 setproperty style
+ 25 jump bb3
+ bb2
+ succs=[bb3]
+ 26 getlex style
+ 27 getlocal1
+ 28 debugline 683
+ 29 setproperty {private, org.apache.royale.core:UIBase, org.apache.royale.core:UIBase, org.apache.royale.core:HTMLElementWrapper, flash.display:Sprite, flash.display:DisplayObjectContainer, flash.display:InteractiveObject, flash.display:DisplayObject, flash.events:EventDispatcher, Object, org.apache.royale.core, org.apache.royale.core, private, , http://adobe.com/AS3/2006/builtin, }::left
+ bb3
+ succs=[]
+ 30 returnvoid
+ }
+
+ [__go_to_definition_help(pos="20844")]
+ public function setX(Number):void
+ {
+ // derivedName setX
+ // method_info 185
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty x
+ 6 debugline 728
+ 7 swap
+ 8 setsuper x
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="21243")]
+ private var _y:Number
+
+ [__go_to_definition_help(pos="21366")]
+ public override function set y(Number):void
+ {
+ // derivedName y
+ // method_info 186
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 75
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 debugline 747
+ 6 dup
+ 7 findproperty _y
+ 8 swap
+ 9 setproperty _y
+ 10 findproperty y
+ 11 swap
+ 12 setsuper y
+ 13 getlex style
+ 14 debugline 748
+ 15 not
+ 16 debugline 748
+ 17 iffalse bb2
+ bb1
+ succs=[bb3]
+ 18 debugline 749
+ 19 pushstring "top"
+ 20 getlocal1
+ 21 newobject 1
+ 22 findproperty style
+ 23 swap
+ 24 setproperty style
+ 25 jump bb3
+ bb2
+ succs=[bb3]
+ 26 getlex style
+ 27 getlocal1
+ 28 debugline 751
+ 29 setproperty {private, org.apache.royale.core:UIBase, org.apache.royale.core:UIBase, org.apache.royale.core:HTMLElementWrapper, flash.display:Sprite, flash.display:DisplayObjectContainer, flash.display:InteractiveObject, flash.display:DisplayObject, flash.events:EventDispatcher, Object, org.apache.royale.core, org.apache.royale.core, private, , http://adobe.com/AS3/2006/builtin, }::top
+ bb3
+ succs=[]
+ 30 returnvoid
+ }
+
+ [__go_to_definition_help(pos="22744")]
+ public function setY(Number):void
+ {
+ // derivedName setY
+ // method_info 187
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty y
+ 6 debugline 797
+ 7 swap
+ 8 setsuper y
+ 9 returnvoid
+ }
+
+ [Bindable("visibleChanged")]
+ [__go_to_definition_help(pos="23240")]
+ public override function set visible(Boolean):void
+ {
+ // derivedName visible
+ // method_info 188
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 75
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty visible
+ 6 debugline 815
+ 7 swap
+ 8 setsuper visible
+ 9 findpropstrict dispatchEvent
+ 10 findpropstrict org.apache.royale.events::Event
+ 11 getlocal1
+ 12 iffalse bb2
+ bb1
+ succs=[bb3]
+ 13 debugline 816
+ 14 pushstring "show"
+ 15 jump bb3
+ bb2
+ succs=[bb3]
+ 16 pushstring "hide"
+ bb3
+ succs=[]
+ 17 constructprop
+ 18 callpropvoid
+ 19 findpropstrict dispatchEvent
+ 20 findpropstrict org.apache.royale.events::Event
+ 21 debugline 817
+ 22 pushstring "visibleChanged"
+ 23 constructprop
+ 24 callpropvoid
+ 25 returnvoid
+ }
+
+ [__go_to_definition_help(pos="25189")]
+ private var _model:org.apache.royale.core::IBeadModel
+
+ [__go_to_definition_help(pos="25511")]
+ public function get model():Object
+ {
+ // derivedName model
+ // method_info 189
+ // max_stack 4
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 57
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _model
+ 4 debugline 894
+ 5 pushnull
+ 6 equals
+ 7 debugline 894
+ 8 iffalse bb2
+ bb1
+ succs=[bb2]
+ 9 findpropstrict addBead
+ 10 getlex org.apache.royale.core::ValuesManager
+ 11 debugline 897
+ 12 getproperty valuesImpl
+ 13 getlocal0
+ 14 pushstring "iBeadModel"
+ 15 callproperty
+ 16 construct 0
+ 17 getlex org.apache.royale.core::IBead
+ 18 astypelate
+ 19 callpropvoid
+ bb2
+ succs=[]
+ 20 getlex _model
+ 21 debugline 899
+ 22 returnvalue
+ }
+
+ [__go_to_definition_help(pos="25839")]
+ public function set model(Object):void
+ {
+ // derivedName model
+ // method_info 190
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 63
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _model
+ 5 getlocal1
+ 6 debugline 908
+ 7 equals
+ 8 not
+ 9 debugline 908
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 findpropstrict addBead
+ 12 getlocal1
+ 13 getlex org.apache.royale.core::IBead
+ 14 debugline 910
+ 15 astypelate
+ 16 callpropvoid
+ 17 findpropstrict dispatchEvent
+ 18 findpropstrict org.apache.royale.events::Event
+ 19 debugline 911
+ 20 pushstring "modelChanged"
+ 21 constructprop
+ 22 callpropvoid
+ bb2
+ succs=[]
+ 23 returnvoid
+ }
+
+ [__go_to_definition_help(pos="26004")]
+ private var _view:org.apache.royale.core::IBeadView
+
+ [__go_to_definition_help(pos="26411")]
+ public function get view():org.apache.royale.core::IBeadView
+ {
+ // derivedName view
+ // method_info 191
+ // max_stack 5
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 53
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _view
+ 4 debugline 929
+ 5 not
+ 6 debugline 929
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex org.apache.royale.utils::loadBeadFromValuesManager
+ 9 getglobalscope
+ 10 getlex org.apache.royale.core::IBeadView
+ 11 debugline 930
+ 12 pushstring "iBeadView"
+ 13 getlocal0
+ 14 call 3
+ 15 getlex org.apache.royale.core::IBeadView
+ 16 astypelate
+ 17 findproperty _view
+ 18 swap
+ 19 setproperty _view
+ bb2
+ succs=[]
+ 20 getlex _view
+ 21 debugline 931
+ 22 returnvalue
+ }
+
+ [__go_to_definition_help(pos="26673")]
+ public function set view(org.apache.royale.core::IBeadView):void
+ {
+ // derivedName view
+ // method_info 192
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 59
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _view
+ 5 getlocal1
+ 6 debugline 939
+ 7 equals
+ 8 not
+ 9 debugline 939
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 findpropstrict addBead
+ 12 getlocal1
+ 13 debugline 941
+ 14 callpropvoid
+ 15 findpropstrict dispatchEvent
+ 16 findpropstrict org.apache.royale.events::Event
+ 17 debugline 942
+ 18 pushstring "viewChanged"
+ 19 constructprop
+ 20 callpropvoid
+ bb2
+ succs=[]
+ 21 returnvoid
+ }
+
+ [__go_to_definition_help(pos="26890")]
+ private var _id:String
+
+ [__go_to_definition_help(pos="27150")]
+ public function get id():String
+ {
+ // derivedName id
+ // method_info 193
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _id
+ 4 debugline 958
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="27253")]
+ public function set id(String):void
+ {
+ // derivedName id
+ // method_info 194
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 59
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _id
+ 5 getlocal1
+ 6 debugline 966
+ 7 strictequals
+ 8 not
+ 9 debugline 966
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty _id
+ 13 debugline 968
+ 14 swap
+ 15 setproperty _id
+ 16 findpropstrict dispatchEvent
+ 17 findpropstrict org.apache.royale.events::Event
+ 18 debugline 969
+ 19 pushstring "idChanged"
+ 20 constructprop
+ 21 callpropvoid
+ bb2
+ succs=[]
+ 22 returnvoid
+ }
+
+ [__go_to_definition_help(pos="27484")]
+ private var _style:Object
+
+ [__go_to_definition_help(pos="27910")]
+ public function get style():Object
+ {
+ // derivedName style
+ // method_info 195
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _style
+ 4 debugline 993
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="28095")]
+ public function set style(Object):void
+ {
+ // derivedName style
+ // method_info 196
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 163
+ bb0
+ succs=[bb1,bb9]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _style
+ 5 getlocal1
+ 6 debugline 1002
+ 7 strictequals
+ 8 not
+ 9 debugline 1002
+ 10 iffalse bb9
+ bb1
+ succs=[bb2,bb3]
+ 11 getlocal1
+ 12 getlex String
+ 13 debugline 1004
+ 14 istypelate
+ 15 debugline 1004
+ 16 iffalse bb3
+ bb2
+ succs=[bb4]
+ 17 getlex org.apache.royale.core::ValuesManager
+ 18 debugline 1006
+ 19 getproperty valuesImpl
+ 20 getlocal1
+ 21 getlex String
+ 22 astypelate
+ 23 callproperty
+ 24 findproperty _style
+ 25 swap
+ 26 setproperty _style
+ 27 jump bb4
+ bb3
+ succs=[bb4]
+ 28 getlocal1
+ 29 findproperty _style
+ 30 debugline 1009
+ 31 swap
+ 32 setproperty _style
+ bb4
+ succs=[bb5,bb6]
+ 33 getlex isNaN
+ 34 debugline 1010
+ 35 getglobalscope
+ 36 getlex _y
+ 37 call 1
+ 38 not
+ 39 debugline 1010
+ 40 iffalse bb6
+ bb5
+ succs=[bb6]
+ 41 getlex _style
+ 42 getlex _y
+ 43 debugline 1011
+ 44 setproperty {private, org.apache.royale.core:UIBase, org.apache.royale.core:UIBase, org.apache.royale.core:HTMLElementWrapper, flash.display:Sprite, flash.display:DisplayObjectContainer, flash.display:InteractiveObject, flash.display:DisplayObject, flash.events:EventDispatcher, Object, org.apache.royale.core, org.apache.royale.core, private, , http://adobe.com/AS3/2006/builtin, }::top
+ bb6
+ succs=[bb8,bb7]
+ 45 getlex isNaN
+ 46 debugline 1012
+ 47 getglobalscope
+ 48 getlex _x
+ 49 call 1
+ 50 not
+ 51 debugline 1012
+ 52 iffalse bb8
+ bb7
+ succs=[bb8]
+ 53 getlex _style
+ 54 getlex _x
+ 55 debugline 1013
+ 56 setproperty {private, org.apache.royale.core:UIBase, org.apache.royale.core:UIBase, org.apache.royale.core:HTMLElementWrapper, flash.display:Sprite, flash.display:DisplayObjectContainer, flash.display:InteractiveObject, flash.display:DisplayObject, flash.events:EventDispatcher, Object, org.apache.royale.core, org.apache.royale.core, private, , http://adobe.com/AS3/2006/builtin, }::left
+ bb8
+ succs=[bb9]
+ 57 findpropstrict dispatchEvent
+ 58 findpropstrict org.apache.royale.events::Event
+ 59 debugline 1019
+ 60 pushstring "stylesChanged"
+ 61 constructprop
+ 62 callpropvoid
+ bb9
+ succs=[]
+ 63 returnvoid
+ }
+
+ [__go_to_definition_help(pos="29068")]
+ public var typeNames:String = ""
+
+ [__go_to_definition_help(pos="29120")]
+ private var _className:String
+
+ [__go_to_definition_help(pos="30132")]
+ public function get className():String
+ {
+ // derivedName className
+ // method_info 197
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _className
+ 4 debugline 1061
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="30255")]
+ public function set className(String):void
+ {
+ // derivedName className
+ // method_info 198
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 59
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlex _className
+ 5 getlocal1
+ 6 debugline 1069
+ 7 strictequals
+ 8 not
+ 9 debugline 1069
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty _className
+ 13 debugline 1071
+ 14 swap
+ 15 setproperty _className
+ 16 findpropstrict dispatchEvent
+ 17 findpropstrict org.apache.royale.events::Event
+ 18 debugline 1081
+ 19 pushstring "classNameChanged"
+ 20 constructprop
+ 21 callpropvoid
+ bb2
+ succs=[]
+ 22 returnvoid
+ }
+
+ [__go_to_definition_help(pos="31379")]
+ public function get element():org.apache.royale.core::IRoyaleElement
+ {
+ // derivedName element
+ // method_info 199
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlocal0
+ 4 debugline 1108
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="31758")]
+ public var beads:Array
+
+ [__go_to_definition_help(pos="31809")]
+ private var _beads:__AS3__.vec::Vector.<org.apache.royale.core::IBead>
+
+ [__go_to_definition_help(pos="32248")]
+ public override function addBead(org.apache.royale.core::IBead):void
+ {
+ // derivedName addBead
+ // method_info 200
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 162
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 pushfalse
+ 6 setlocal2
+ 7 getlex _beads
+ 8 debugline 1139
+ 9 not
+ 10 debugline 1139
+ 11 iffalse bb2
+ bb1
+ succs=[bb2]
+ 12 getlex __AS3__.vec::Vector
+ 13 getlex org.apache.royale.core::IBead
+ 14 debugline 1140
+ 15 applytype 1
+ 16 construct 0
+ 17 findproperty _beads
+ 18 swap
+ 19 setproperty _beads
+ bb2
+ succs=[bb3,bb4]
+ 20 getlex _beads
+ 21 getlocal1
+ 22 debugline 1141
+ 23 callpropvoid
+ 24 getlocal1
+ 25 getlex org.apache.royale.core::IBeadModel
+ 26 debugline 1142
+ 27 istypelate
+ 28 debugline 1142
+ 29 iffalse bb4
+ bb3
+ succs=[bb6]
+ 30 getlocal1
+ 31 getlex org.apache.royale.core::IBeadModel
+ 32 debugline 1143
+ 33 astypelate
+ 34 findproperty _model
+ 35 swap
+ 36 setproperty _model
+ 37 jump bb6
+ bb4
+ succs=[bb5,bb6]
+ 38 getlocal1
+ 39 getlex org.apache.royale.core::IBeadView
+ 40 debugline 1144
+ 41 istypelate
+ 42 iffalse bb6
+ bb5
+ succs=[bb6]
+ 43 getlocal1
+ 44 getlex org.apache.royale.core::IBeadView
+ 45 debugline 1146
+ 46 astypelate
+ 47 findproperty _view
+ 48 swap
+ 49 setproperty _view
+ 50 debugline 1147
+ 51 pushtrue
+ 52 setlocal2
+ bb6
+ succs=[bb8,bb7]
+ 53 getlocal1
+ 54 getlocal0
+ 55 debugline 1149
+ 56 setproperty strand
+ 57 getlocal2
+ 58 iffalse bb8
+ bb7
+ succs=[bb8]
+ 59 findpropstrict dispatchEvent
+ 60 findpropstrict org.apache.royale.events::Event
+ 61 debugline 1152
+ 62 pushstring "viewChanged"
+ 63 constructprop
+ 64 callpropvoid
+ bb8
+ succs=[]
+ 65 returnvoid
+ }
+
+ [__go_to_definition_help(pos="32964")]
+ public function getBeadByType(Class):org.apache.royale.core::IBead
+ {
+ // derivedName getBeadByType
+ // method_info 201
+ // max_stack 2
+ // max_regs 5
+ // scope_depth 0
+ // max_scope 1
+ // code_length 68
+ bb0
+ succs=[bb3]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 pushbyte 0
+ 6 setlocal 4
+ 7 getlex _beads
+ 8 setlocal3
+ 9 jump bb3
+ bb1
+ succs=[bb2,bb3]
+ 10 label
+ 11 getlocal3
+ 12 getlocal 4
+ 13 nextvalue
+ 14 coerce org.apache.royale.core::IBead
+ 15 setlocal2
+ 16 getlocal2
+ 17 getlocal1
+ 18 debugline 1169
+ 19 istypelate
+ 20 debugline 1169
+ 21 iffalse bb3
+ bb2
+ succs=[]
+ 22 getlocal2
+ 23 debugline 1170
+ 24 returnvalue
+ bb3
+ succs=[bb1,bb4]
+ 25 hasnext2
+ 26 iftrue bb1
+ bb4
+ succs=[]
+ 27 debugline 1172
+ 28 pushnull
+ 29 returnvalue
+ }
+
+ [__go_to_definition_help(pos="33415")]
+ public function removeBead(org.apache.royale.core::IBead):org.apache.royale.core::IBead
+ {
+ // derivedName removeBead
+ // method_info 202
+ // max_stack 3
+ // max_regs 5
+ // scope_depth 0
+ // max_scope 1
+ // code_length 116
+ bb0
+ succs=[bb4]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 getlex _beads
+ 8 debugline 1186
+ 9 getproperty length
+ 10 convert_i
+ 11 setlocal2
+ 12 debugline 1187
+ 13 pushbyte 0
+ 14 setlocal3
+ 15 debugline 1187
+ 16 jump bb4
+ bb1
+ succs=[bb3,bb2]
+ 17 label [...]
+ 18 getlex _beads [...]
+ 19 getlocal3 [...]
+ 20 debugline [...]
+ 21 getproperty <error> MultinameL: {PrivateNs:"org.apache.royale.core:UIBase",ProtectedNs:"org.apache.royale.core:UIBase",StaticProtectedNs:"org.apache.royale.core:UIBase",StaticProtectedNs:"org.apache.royale.core:HTMLElementWrapper",StaticProtectedNs:"flash.display:Sprite",StaticProtectedNs:"flash.display:DisplayObjectContainer",StaticProtectedNs:"flash.display:InteractiveObject",StaticProtectedNs:"flash.display:DisplayObject",StaticProtectedNs:"flash.events:EventDispatcher" [...]
+ 22 coerce org.apache.royale.core::IBead [...]
+ 23 dup [...]
+ 24 setlocal [...]
+ 25 getlocal1 [...]
+ 26 debugline [...]
+ 27 equals [...]
+ 28 debugline [...]
+ 29 iffalse bb3 [...]
+ bb2
+ succs=[]
+ 30 getlex _beads
+ 31 getlocal3
+ 32 debugline 1192
+ 33 pushbyte 1
+ 34 callpropvoid
+ 35 getlocal 4
+ 36 debugline 1193
+ 37 returnvalue
+ bb3
+ succs=[bb4]
+ 38 inclocal_i 3
+ 39 debugline 1187
+ bb4
+ succs=[bb1,bb5]
+ 40 getlocal3
+ 41 getlocal2
+ 42 iflt bb1
+ bb5
+ succs=[]
+ 43 debugline 1196
+ 44 pushnull
+ 45 returnvalue
+ }
+
+ [__go_to_definition_help(pos="33975")]
+ public function addElement(org.apache.royale.core::IChild,Boolean):void
+ {
+ // derivedName addElement
+ // method_info 203
+ // max_stack 4
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 118
+ bb0
+ succs=[bb1,bb5]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlocal1
+ 6 getlex org.apache.royale.core::IUIBase
+ 7 debugline 1212
+ 8 istypelate
+ 9 debugline 1212
+ 10 iffalse bb5
+ bb1
+ succs=[bb3,bb2]
+ 11 getlocal1
+ 12 getlex org.apache.royale.core::IRenderedObject
+ 13 debugline 1214
+ 14 istypelate
+ 15 debugline 1214
+ 16 iffalse bb3
+ bb2
+ succs=[bb4]
+ 17 findpropstrict $addChild
+ 18 getlex org.apache.royale.core::IRenderedObject
+ 19 debugline 1215
+ 20 getglobalscope
+ 21 getlocal1
+ 22 call 1
+ 23 getproperty $displayObject
+ 24 callpropvoid
+ 25 jump bb4
+ bb3
+ succs=[bb4]
+ 26 findpropstrict $addChild
+ 27 getlocal1
+ 28 getlex flash.display::DisplayObject
+ 29 debugline 1217
+ 30 astypelate
+ 31 callpropvoid
+ bb4
+ succs=[bb6]
+ 32 getlex org.apache.royale.core::IUIBase
+ 33 debugline 1218
+ 34 getglobalscope
+ 35 getlocal1
+ 36 call 1
+ 37 callpropvoid
+ 38 jump bb6
+ bb5
+ succs=[bb6]
+ 39 findpropstrict $addChild
+ 40 getlocal1
+ 41 getlex flash.display::DisplayObject
+ 42 debugline 1221
+ 43 astypelate
+ 44 callpropvoid
+ bb6
+ succs=[]
+ 45 returnvoid
+ }
+
+ [__go_to_definition_help(pos="34986")]
+ public function addElementAt(org.apache.royale.core::IChild,int,Boolean):void
+ {
+ // derivedName addElementAt
+ // method_info 204
+ // max_stack 4
+ // max_regs 4
+ // scope_depth 0
+ // max_scope 1
+ // code_length 127
+ bb0
+ succs=[bb1,bb5]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 getlocal1
+ 7 getlex org.apache.royale.core::IUIBase
+ 8 debugline 1243
+ 9 istypelate
+ 10 debugline 1243
+ 11 iffalse bb5
+ bb1
+ succs=[bb3,bb2]
+ 12 getlocal1
+ 13 getlex org.apache.royale.core::IRenderedObject
+ 14 debugline 1245
+ 15 istypelate
+ 16 debugline 1245
+ 17 iffalse bb3
+ bb2
+ succs=[bb4]
+ 18 findpropstrict $addChildAt
+ 19 getlex org.apache.royale.core::IUIBase
+ 20 debugline 1246
+ 21 getglobalscope
+ 22 getlocal1
+ 23 call 1
+ 24 getproperty $displayObject
+ 25 getlocal2
+ 26 callpropvoid
+ 27 jump bb4
+ bb3
+ succs=[bb4]
+ 28 findpropstrict $addChildAt
+ 29 getlocal1
+ 30 getlex flash.display::DisplayObject
+ 31 debugline 1248
+ 32 astypelate
+ 33 getlocal2
+ 34 callpropvoid
+ bb4
+ succs=[bb6]
+ 35 getlex org.apache.royale.core::IUIBase
+ 36 debugline 1249
+ 37 getglobalscope
+ 38 getlocal1
+ 39 call 1
+ 40 callpropvoid
+ 41 jump bb6
+ bb5
+ succs=[bb6]
+ 42 findpropstrict $addChildAt
+ 43 getlocal1
+ 44 getlex flash.display::DisplayObject
+ 45 debugline 1252
+ 46 astypelate
+ 47 getlocal2
+ 48 callpropvoid
+ bb6
+ succs=[]
+ 49 returnvoid
+ }
+
+ [__go_to_definition_help(pos="36203")]
+ public function getElementAt(int):org.apache.royale.core::IChild
+ {
+ // derivedName getElementAt
+ // method_info 205
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 27
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 findpropstrict $getChildAt
+ 5 getlocal1
+ 6 debugline 1280
+ 7 callproperty
+ 8 getlex org.apache.royale.core::IChild
+ 9 astypelate
+ 10 returnvalue
+ }
+
+ [__go_to_definition_help(pos="36920")]
+ public function getElementIndex(org.apache.royale.core::IChild):int
+ {
+ // derivedName getElementIndex
+ // method_info 206
+ // max_stack 4
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 62
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 getlocal1
+ 5 getlex org.apache.royale.core::IRenderedObject
+ 6 debugline 1305
+ 7 istypelate
+ 8 debugline 1305
+ 9 iffalse bb2
+ bb1
+ succs=[]
+ 10 findpropstrict $getChildIndex
+ 11 getlex org.apache.royale.core::IRenderedObject
+ 12 debugline 1306
+ 13 getglobalscope
+ 14 getlocal1
+ 15 call 1
+ 16 getproperty $displayObject
+ 17 callproperty
+ 18 returnvalue
+ bb2
+ succs=[]
+ 19 findpropstrict $getChildIndex
+ 20 getlocal1
+ 21 getlex flash.display::DisplayObject
+ 22 debugline 1308
+ 23 astypelate
+ 24 callproperty
+ 25 returnvalue
+ }
+
+ [__go_to_definition_help(pos="37900")]
+ public function removeElement(org.apache.royale.core::IChild,Boolean):void
+ {
+ // derivedName removeElement
+ // method_info 207
+ // max_stack 4
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 71
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 getlocal1
+ 6 getlex org.apache.royale.core::IRenderedObject
+ 7 debugline 1336
+ 8 istypelate
+ 9 debugline 1336
+ 10 iffalse bb2
+ bb1
+ succs=[bb3]
+ 11 findpropstrict $removeChild
+ 12 getlex org.apache.royale.core::IRenderedObject
+ 13 debugline 1337
+ 14 getglobalscope
+ 15 getlocal1
+ 16 call 1
+ 17 getproperty $displayObject
+ 18 callpropvoid
+ 19 jump bb3
+ bb2
+ succs=[bb3]
+ 20 findpropstrict $removeChild
+ 21 getlocal1
+ 22 getlex flash.display::DisplayObject
+ 23 debugline 1339
+ 24 astypelate
+ 25 callpropvoid
+ bb3
+ succs=[]
+ 26 returnvoid
+ }
+
+ [__go_to_definition_help(pos="38602")]
+ public function get numElements():int
+ {
+ // derivedName numElements
+ // method_info 208
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex $numChildren
+ 4 debugline 1359
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="39274")]
+ public function addedToParent():void
+ {
+ // derivedName addedToParent
+ // method_info 209
+ // max_stack 6
+ // max_regs 7
+ // scope_depth 0
+ // max_scope 1
+ // code_length 607
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 debug
+ 6 debug
+ 7 pushnull
+ 8 setlocal1
+ 9 getlex isNaN
+ 10 debugline 1391
+ 11 getglobalscope
+ 12 getlex _explicitWidth
+ 13 call 1
+ 14 dup
+ 15 iffalse bb2
+ bb1
+ succs=[bb2]
+ 16 pop
+ 17 getlex isNaN
+ 18 getglobalscope
+ 19 getlex _percentWidth
+ 20 call 1
+ 21 debugline 1391
+ bb2
+ succs=[bb12,bb3]
+ 22 iffalse bb12
+ bb3
+ succs=[bb4,bb12]
+ 23 getlex org.apache.royale.core::ValuesManager
+ 24 debugline 1393
+ 25 getproperty valuesImpl
+ 26 getlocal0
+ 27 pushstring "width"
+ 28 callproperty
+ 29 setlocal2
+ 30 getlocal2
+ 31 debugline 1394
+ 32 pushundefined
+ 33 strictequals
+ 34 not
+ 35 debugline 1394
+ 36 iffalse bb12
+ bb4
+ succs=[bb11,bb5]
+ 37 getlocal2
+ 38 getlex String
+ 39 debugline 1396
+ 40 istypelate
+ 41 debugline 1396
+ 42 iffalse bb11
+ bb5
+ succs=[bb7,bb6]
+ 43 getlex String
+ 44 debugline 1398
+ 45 getglobalscope
+ 46 getlocal2
+ 47 call 1
+ 48 coerce_s
+ 49 setlocal3
+ 50 getlocal3
+ 51 debugline 1399
+ 52 pushstring "%"
+ 53 callproperty
+ 54 pushbyte 255
+ 55 greaterthan
+ 56 debugline 1399
+ 57 iffalse bb7
+ bb6
+ succs=[bb10]
+ 58 getlex Number
+ 59 getglobalscope
+ 60 getlocal3
+ 61 debugline 1400
+ 62 pushbyte 0
+ 63 getlocal3
+ 64 getproperty length
+ 65 pushbyte 1
+ 66 subtract
+ 67 callproperty
+ 68 call 1
+ 69 findproperty _percentWidth
+ 70 swap
+ 71 setproperty _percentWidth
+ 72 jump bb10
+ bb7
+ succs=[bb8,bb9]
+ 73 getlocal3
+ 74 debugline 1403
+ 75 pushstring "px"
+ 76 callproperty
+ 77 pushbyte 255
+ 78 strictequals
+ 79 not
+ 80 debugline 1403
+ 81 iffalse bb9
+ bb8
+ succs=[bb9]
+ 82 getlocal3
+ 83 debugline 1404
+ 84 pushbyte 0
+ 85 getlocal3
+ 86 getproperty length
+ 87 pushbyte 2
+ 88 subtract
+ 89 callproperty
+ 90 coerce_s
+ 91 setlocal3
+ bb9
+ succs=[bb10]
+ 92 getlex Number
+ 93 debugline 1405
+ 94 getglobalscope
+ 95 getlocal3
+ 96 call 1
+ 97 dup
+ 98 findproperty _explicitWidth
+ 99 swap
+ 100 setproperty _explicitWidth
+ 101 findproperty _width
+ 102 swap
+ 103 setproperty _width
+ bb10
+ succs=[bb12]
+ 104 jump bb12
+ bb11
+ succs=[bb12]
+ 105 getlocal2
+ 106 getlex Number
+ 107 debugline 1409
+ 108 astypelate
+ 109 dup
+ 110 findproperty _explicitWidth
+ 111 swap
+ 112 setproperty _explicitWidth
+ 113 findproperty _width
+ 114 swap
+ 115 setproperty _width
+ bb12
+ succs=[bb14,bb13]
+ 116 getlex isNaN
+ 117 debugline 1413
+ 118 getglobalscope
+ 119 getlex _explicitHeight
+ 120 call 1
+ 121 dup
+ 122 iffalse bb14
+ bb13
+ succs=[bb14]
+ 123 pop
+ 124 getlex isNaN
+ 125 getglobalscope
+ 126 getlex _percentHeight
+ 127 call 1
+ 128 debugline 1413
+ bb14
+ succs=[bb15,bb24]
+ 129 iffalse bb24
+ bb15
+ succs=[bb24,bb16]
+ 130 getlex org.apache.royale.core::ValuesManager
+ 131 debugline 1415
+ 132 getproperty valuesImpl
+ 133 getlocal0
+ 134 pushstring "height"
+ 135 callproperty
+ 136 setlocal2
+ 137 getlocal2
+ 138 debugline 1416
+ 139 pushundefined
+ 140 strictequals
+ 141 not
+ 142 debugline 1416
+ 143 iffalse bb24
+ bb16
+ succs=[bb23,bb17]
+ 144 getlocal2
+ 145 getlex String
+ 146 debugline 1418
+ 147 istypelate
+ 148 debugline 1418
+ 149 iffalse bb23
+ bb17
+ succs=[bb18,bb19]
+ 150 getlex String
+ 151 debugline 1420
+ 152 getglobalscope
+ 153 getlocal2
+ 154 call 1
+ 155 coerce_s
+ 156 setlocal3
+ 157 getlocal3
+ 158 debugline 1421
+ 159 pushstring "%"
+ 160 callproperty
+ 161 pushbyte 255
+ 162 strictequals
+ 163 not
+ 164 debugline 1421
+ 165 iffalse bb19
+ bb18
+ succs=[bb22]
+ 166 getlex Number
+ 167 getglobalscope
+ 168 getlocal3
+ 169 debugline 1422
+ 170 pushbyte 0
+ 171 getlocal3
+ 172 getproperty length
+ 173 pushbyte 1
+ 174 subtract
+ 175 callproperty
+ 176 call 1
+ 177 findproperty _percentHeight
+ 178 swap
+ 179 setproperty _percentHeight
+ 180 jump bb22
+ bb19
+ succs=[bb20,bb21]
+ 181 getlocal3
+ 182 debugline 1425
+ 183 pushstring "px"
+ 184 callproperty
+ 185 pushbyte 255
+ 186 strictequals
+ 187 not
+ 188 debugline 1425
+ 189 iffalse bb21
+ bb20
+ succs=[bb21]
+ 190 getlocal3
+ 191 debugline 1426
+ 192 pushbyte 0
+ 193 getlocal3
+ 194 getproperty length
+ 195 pushbyte 2
+ 196 subtract
+ 197 callproperty
+ 198 coerce_s
+ 199 setlocal3
+ bb21
+ succs=[bb22]
+ 200 getlex Number
+ 201 debugline 1427
+ 202 getglobalscope
+ 203 getlocal3
+ 204 call 1
+ 205 dup
+ 206 findproperty _explicitHeight
+ 207 swap
+ 208 setproperty _explicitHeight
+ 209 findproperty _height
+ 210 swap
+ 211 setproperty _height
+ bb22
+ succs=[bb24]
+ 212 jump bb24
+ bb23
+ succs=[bb24]
+ 213 getlocal2
+ 214 getlex Number
+ 215 debugline 1431
+ 216 astypelate
+ 217 dup
+ 218 findproperty _explicitHeight
+ 219 swap
+ 220 setproperty _explicitHeight
+ 221 findproperty _height
+ 222 swap
+ 223 setproperty _height
+ bb24
+ succs=[bb26]
+ 224 pushbyte 0
+ 225 setlocal 6
+ 226 getlex beads
+ 227 setlocal 5
+ 228 jump bb26
+ bb25
+ succs=[bb26]
+ 229 label
+ 230 getlocal 5
+ 231 getlocal 6
+ 232 nextvalue
+ 233 coerce org.apache.royale.core::IBead
+ 234 setlocal 4
+ 235 findpropstrict addBead
+ 236 getlocal 4
+ 237 debugline 1436
+ 238 callpropvoid
+ bb26
+ succs=[bb27,bb25]
+ 239 hasnext2
+ 240 iftrue bb25
+ bb27
+ succs=[]
+ 241 getlex org.apache.royale.utils::loadBeadFromValuesManager
+ 242 getglobalscope
+ 243 getlex org.apache.royale.core::IBeadModel
+ 244 debugline 1438
+ 245 pushstring "iBeadModel"
+ 246 getlocal0
+ 247 call 3
+ 248 pop
+ 249 getlex org.apache.royale.utils::loadBeadFromValuesManager
+ 250 getglobalscope
+ 251 getlex org.apache.royale.core::IBeadView
+ 252 debugline 1439
+ 253 pushstring "iBeadView"
+ 254 getlocal0
+ 255 call 3
+ 256 pop
+ 257 getlex org.apache.royale.utils::loadBeadFromValuesManager
+ 258 getglobalscope
+ 259 getlex org.apache.royale.core::IBeadController
+ 260 debugline 1440
+ 261 pushstring "iBeadController"
+ 262 getlocal0
+ 263 call 3
+ 264 pop
+ 265 findpropstrict dispatchEvent
+ 266 findpropstrict org.apache.royale.events::Event
+ 267 debugline 1441
+ 268 pushstring "beadsAdded"
+ 269 constructprop
+ 270 callpropvoid
+ 271 returnvoid
+ }
+
+ [__go_to_definition_help(pos="41503")]
+ private var _measurementBead:org.apache.royale.core::IMeasurementBead
+
+ [__go_to_definition_help(pos="41858")]
+ public function get measurementBead():org.apache.royale.core::IMeasurementBead
+ {
+ // derivedName measurementBead
+ // method_info 210
+ // max_stack 5
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 53
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _measurementBead
+ 4 debugline 1456
+ 5 not
+ 6 debugline 1456
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex org.apache.royale.utils::loadBeadFromValuesManager
+ 9 getglobalscope
+ 10 getlex org.apache.royale.core::IMeasurementBead
+ 11 debugline 1458
+ 12 pushstring "iMeasurementBead"
+ 13 getlocal0
+ 14 call 3
+ 15 getlex org.apache.royale.core::IMeasurementBead
+ 16 astypelate
+ 17 findproperty _measurementBead
+ 18 swap
+ 19 setproperty _measurementBead
+ bb2
+ succs=[]
+ 20 getlex _measurementBead
+ 21 debugline 1460
+ 22 returnvalue
+ }
+
+ [__go_to_definition_help(pos="42169")]
+ private var _stageProxy:org.apache.royale.core::StageProxy
+
+ [__go_to_definition_help(pos="42625")]
+ public function get topMostEventDispatcher():org.apache.royale.events::IEventDispatcher
+ {
+ // derivedName topMostEventDispatcher
+ // method_info 211
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 61
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlex _stageProxy
+ 4 debugline 1480
+ 5 not
+ 6 debugline 1480
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 findpropstrict org.apache.royale.core::StageProxy
+ 9 getlex stage
+ 10 debugline 1482
+ 11 constructprop
+ 12 findproperty _stageProxy
+ 13 swap
+ 14 setproperty _stageProxy
+ 15 getlex _stageProxy
+ 16 debugline 1483
+ 17 pushstring "removedFromStage"
+ 18 getlex stageProxy_removedFromStageHandler
+ 19 callpropvoid
+ bb2
+ succs=[]
+ 20 getlex _stageProxy
+ 21 debugline 1486
+ 22 returnvalue
+ }
+
+ [__go_to_definition_help(pos="43274")]
+ private function stageProxy_removedFromStageHandler(org.apache.royale.events::Event):void
+ {
+ // derivedName stageProxy_removedFromStageHandler
+ // method_info 212
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1498
+ 5 pushnull
+ 6 findproperty _stageProxy
+ 7 swap
+ 8 setproperty _stageProxy
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="43512")]
+ protected function repeaterListener(org.apache.royale.events::Event):void
+ {
+ // derivedName repeaterListener
+ // method_info 213
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 findpropstrict dispatchEvent
+ 5 getlocal1
+ 6 debugline 1506
+ 7 callpropvoid
+ 8 returnvoid
+ }
+
+ [SWFOverride(returns="flash.display.DisplayObjectContainer")]
+ [__go_to_definition_help(pos="45922")]
+ public override function get parent():flash.display::DisplayObjectContainer
+ {
+ // derivedName parent
+ // method_info 214
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 17
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 findpropstrict parent
+ 4 getsuper parent
+ 5 getlex org.apache.royale.core::IParent
+ 6 debugline 1587
+ 7 astypelate
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="46059")]
+ public function get transformElement():org.apache.royale.core::IRoyaleElement
+ {
+ // derivedName transformElement
+ // method_info 215
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 10
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 getlocal0
+ 4 debugline 1594
+ 5 returnvalue
+ }
+
+ [SWFOverride(params="flash.events.Event", altparams="org.apache.royale.events.Event:org.apache.royale.events.MouseEvent")]
+ [__go_to_definition_help(pos="46425")]
+ public override function dispatchEvent(flash.events::Event):Boolean
+ {
+ // derivedName dispatchEvent
+ // method_info 216
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1608
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="46616")]
+ public function $addChild(flash.display::DisplayObject):flash.display::DisplayObject
+ {
+ // derivedName $addChild
+ // method_info 217
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1615
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="46768")]
+ public function $addChildAt(flash.display::DisplayObject,int):flash.display::DisplayObject
+ {
+ // derivedName $addChildAt
+ // method_info 218
+ // max_stack 3
+ // max_regs 3
+ // scope_depth 0
+ // max_scope 1
+ // code_length 28
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debug
+ 5 debugline 1620
+ 6 getlocal0
+ 7 getlocal1
+ 8 getlocal2
+ 9 callsuper
+ 10 returnvalue
+ }
+
+ [__go_to_definition_help(pos="46942")]
+ public function $removeChildAt(int):flash.display::DisplayObject
+ {
+ // derivedName $removeChildAt
+ // method_info 219
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1625
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47094")]
+ public function $removeChild(flash.display::DisplayObject):flash.display::DisplayObject
+ {
+ // derivedName $removeChild
+ // method_info 220
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1630
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47252")]
+ public function $getChildAt(int):flash.display::DisplayObject
+ {
+ // derivedName $getChildAt
+ // method_info 221
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1635
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47398")]
+ public function $setChildIndex(int):void
+ {
+ // derivedName $setChildIndex
+ // method_info 222
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1640
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsupervoid
+ 8 returnvoid
+ }
+
+ [__go_to_definition_help(pos="47534")]
+ public function $getChildIndex(flash.display::DisplayObject):int
+ {
+ // derivedName $getChildIndex
+ // method_info 223
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1645
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47686")]
+ public function $getChildByName(String):flash.display::DisplayObject
+ {
+ // derivedName $getChildByName
+ // method_info 224
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 21
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 debug
+ 4 debugline 1650
+ 5 getlocal0
+ 6 getlocal1
+ 7 callsuper
+ 8 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47845")]
+ public function get $numChildren():int
+ {
+ // derivedName $numChildren
+ // method_info 225
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 15
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 findpropstrict numChildren
+ 4 getsuper numChildren
+ 5 debugline 1655
+ 6 returnvalue
+ }
+
+ [__go_to_definition_help(pos="47971")]
+ public function get $parent():flash.display::DisplayObjectContainer
+ {
+ // derivedName $parent
+ // method_info 226
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 13
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/Basic/src/main/royale;org/apache/royale/core;UIBase.as"
+ 3 findpropstrict parent
+ 4 getsuper parent
+ 5 debugline 1660
+ 6 returnvalue
+ }
+
+ public static function org.apache.royale.core::UIBase$():*
+ {
+ // derivedName null
+ // method_info 228
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script21$init():*
+{
+ // derivedName null
+ // method_info 161
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 8
+ // code_length 43
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 getlex Object
+ 4 pushscope
+ 5 getlex flash.events::EventDispatcher
+ 6 pushscope
+ 7 getlex flash.display::DisplayObject
+ 8 pushscope
+ 9 getlex flash.display::InteractiveObject
+ 10 pushscope
+ 11 getlex flash.display::DisplayObjectContainer
+ 12 pushscope
+ 13 getlex flash.display::Sprite
+ 14 pushscope
+ 15 getlex org.apache.royale.core::HTMLElementWrapper
+ 16 dup
+ 17 pushscope
+ 18 newclass
+ 19 popscope
+ 20 popscope
+ 21 popscope
+ 22 popscope
+ 23 popscope
+ 24 popscope
+ 25 popscope
+ 26 initproperty org.apache.royale.core::UIBase
+ 27 returnvoid
+}
+
+// script 22
+
+// class_id=26 slot_id=0
+public interface org.apache.royale.core::IStatesObject extends *
+ org.apache.royale.events::IEventDispatcher
+{
+
+ // method_id=235
+ public function org.apache.royale.core::IStatesObject():*
+
+ org.apache.royale.core:IStatesObject function get states():Array
+
+ org.apache.royale.core:IStatesObject function get currentState():String
+
+ org.apache.royale.core:IStatesObject function set currentState(String):void
+
+ org.apache.royale.core:IStatesObject function get transitions():Array
+
+ public static function org.apache.royale.core::IStatesObject$():*
+ {
+ // derivedName null
+ // method_info 234
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script22$init():*
+{
+ // derivedName null
+ // method_info 229
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty org.apache.royale.core::IStatesObject
+ 6 returnvoid
+}
+
+// script 23
+
+// class_id=27 slot_id=0
+public interface mx.core::IFlexModule extends *
+{
+
+ // method_id=240
+ public function mx.core::IFlexModule():*
+
+ mx.core:IFlexModule function set moduleFactory(mx.core::IFlexModuleFactory):void
+
+ mx.core:IFlexModule function get moduleFactory():mx.core::IFlexModuleFactory
+
+ public static function mx.core::IFlexModule$():*
+ {
+ // derivedName null
+ // method_info 239
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script23$init():*
+{
+ // derivedName null
+ // method_info 236
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IFlexModule
+ 6 returnvoid
+}
+
+// script 24
+
+// class_id=28 slot_id=0
+public interface mx.core::IInvalidating extends *
+{
+
+ // method_id=247
+ public function mx.core::IInvalidating():*
+
+ mx.core:IInvalidating function invalidateProperties():void
+
+ mx.core:IInvalidating function invalidateSize():void
+
+ mx.core:IInvalidating function invalidateDisplayList():void
+
+ mx.core:IInvalidating function validateNow():void
+
+ public static function mx.core::IInvalidating$():*
+ {
+ // derivedName null
+ // method_info 246
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script24$init():*
+{
+ // derivedName null
+ // method_info 241
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IInvalidating
+ 6 returnvoid
+}
+
+// script 25
+
+// class_id=29 slot_id=0
+public interface mx.core::IVisualElement extends *
+{
+
+ // method_id=265
+ public function mx.core::IVisualElement():*
+
+ mx.core:IVisualElement function get owner():mx.core::IUIComponent
+
+ mx.core:IVisualElement function set owner(mx.core::IUIComponent):void
+
+ [SWFOverride(returns="flash.display.DisplayObjectContainer")]
+ mx.core:IVisualElement function get parent():flash.display::DisplayObjectContainer
+
+ mx.core:IVisualElement function get visible():Boolean
+
+ mx.core:IVisualElement function set visible(Boolean):void
+
+ mx.core:IVisualElement function get alpha():Number
+
+ mx.core:IVisualElement function set alpha(Number):void
+
+ mx.core:IVisualElement function get width():Number
+
+ mx.core:IVisualElement function set width(Number):void
+
+ mx.core:IVisualElement function get height():Number
+
+ mx.core:IVisualElement function set height(Number):void
+
+ mx.core:IVisualElement function get x():Number
+
+ mx.core:IVisualElement function set x(Number):void
+
+ mx.core:IVisualElement function get y():Number
+
+ mx.core:IVisualElement function set y(Number):void
+
+ public static function mx.core::IVisualElement$():*
+ {
+ // derivedName null
+ // method_info 264
+ // max_stack 0
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 0
+ // code_length 1
+ bb0
+ succs=[]
+ 0 returnvoid
+ }
+}
+
+function script25$init():*
+{
+ // derivedName null
+ // method_info 248
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 11
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 getscopeobject 0
+ 3 pushnull
+ 4 newclass
+ 5 initproperty mx.core::IVisualElement
+ 6 returnvoid
+}
+
+// script 26
+
+// class_id=30 slot_id=0
+[__go_to_definition_help(pos="14144")]
+[__go_to_ctor_definition_help(pos="16160")]
+public class mx.core::UIComponent extends org.apache.royale.core::UIBase
+ mx.core::IChildList,mx.core::IFlexDisplayObject,mx.core::IInvalidating,org.apache.royale.core::IStatesObject,mx.core::IUIComponent,mx.core::IVisualElement,mx.core::IFlexModule
+{
+
+ // method_id=416
+ public function mx.core::UIComponent():*
+ {
+ // derivedName UIComponent
+ // method_info 416
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 42
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 4 debugline 2643
+ 5 newarray 0
+ 6 findproperty _states
+ 7 swap
+ 8 setproperty _states
+ 9 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 10 debugline 2689
+ 11 newarray 0
+ 12 findproperty _transitions
+ 13 swap
+ 14 setproperty _transitions
+ 15 debugline 491
+ 16 getlocal0
+ 17 constructsuper 0
+ 18 returnvoid
+ }
+
+ [__go_to_definition_help(pos="16607")]
+ private var _initialized:Boolean = false
+
+ [__go_to_definition_help(pos="17012")]
+ public function get initialized():Boolean
+ {
+ // derivedName initialized
+ // method_info 267
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 getlex _initialized
+ 4 debugline 523
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="17133")]
+ public function set initialized(Boolean):void
+ {
+ // derivedName initialized
+ // method_info 268
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 51
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _initialized
+ 6 debugline 531
+ 7 swap
+ 8 setproperty _initialized
+ 9 getlocal1
+ 10 debugline 533
+ 11 iffalse bb2
+ bb1
+ succs=[bb2]
+ 12 findpropstrict dispatchEvent
+ 13 findpropstrict mx.events::FlexEvent
+ 14 debugline 535
+ 15 pushstring "creationComplete"
+ 16 constructprop
+ 17 callpropvoid
+ bb2
+ succs=[]
+ 18 returnvoid
+ }
+
+ [__go_to_definition_help(pos="17447")]
+ private var _graphics:mx.display::Graphics
+
+ [__go_to_definition_help(pos="18528")]
+ private var oldX:Number = 0
+
+ [__go_to_definition_help(pos="18693")]
+ private var oldY:Number = 0
+
+ [__go_to_definition_help(pos="18864")]
+ private var oldWidth:Number = 0
+
+ [__go_to_definition_help(pos="19040")]
+ private var oldHeight:Number = 0
+
+ [__go_to_definition_help(pos="19176")]
+ private var oldMinWidth:Number
+
+ [__go_to_definition_help(pos="19311")]
+ private var oldMinHeight:Number
+
+ [__go_to_definition_help(pos="19451")]
+ private var oldExplicitWidth:Number
+
+ [__go_to_definition_help(pos="19596")]
+ private var oldExplicitHeight:Number
+
+ [__go_to_definition_help(pos="21171")]
+ public function get accessibilityEnabled():Boolean
+ {
+ // derivedName accessibilityEnabled
+ // method_info 269
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 33
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 678
+ 4 pushtrue
+ 5 debugline 678
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 679
+ 10 pushstring "accessibilityEnabled not implemented"
+ 11 call 1
+ 12 pop
+ 13 debugline 680
+ bb2
+ succs=[]
+ 14 pushfalse
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="21349")]
+ public function set accessibilityEnabled(Boolean):void
+ {
+ // derivedName accessibilityEnabled
+ // method_info 270
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 685
+ 5 pushtrue
+ 6 debugline 685
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 686
+ 11 pushstring "accessibilityEnabled not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 returnvoid
+ }
+
+ [__go_to_definition_help(pos="21724")]
+ public override function get useHandCursor():Boolean
+ {
+ // derivedName useHandCursor
+ // method_info 271
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 33
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 701
+ 4 pushtrue
+ 5 debugline 701
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 702
+ 10 pushstring "useHandCursor not implemented"
+ 11 call 1
+ 12 pop
+ 13 debugline 703
+ bb2
+ succs=[]
+ 14 pushfalse
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="21922")]
+ public override function set useHandCursor(Boolean):void
+ {
+ // derivedName useHandCursor
+ // method_info 272
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 710
+ 5 pushtrue
+ 6 debugline 710
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 711
+ 11 pushstring "useHandCursor not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 returnvoid
+ }
+
+ [__go_to_definition_help(pos="23338")]
+ public override function get buttonMode():Boolean
+ {
+ // derivedName buttonMode
+ // method_info 273
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 33
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 773
+ 4 pushtrue
+ 5 debugline 773
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 774
+ 10 pushstring "buttonMode not implemented"
+ 11 call 1
+ 12 pop
+ 13 debugline 775
+ bb2
+ succs=[]
+ 14 pushfalse
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="23530")]
+ public override function set buttonMode(Boolean):void
+ {
+ // derivedName buttonMode
+ // method_info 274
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 782
+ 5 pushtrue
+ 6 debugline 782
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 783
+ 11 pushstring "buttonMode not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 returnvoid
+ }
+
+ [Bindable("errorStringChanged")]
+ [__go_to_definition_help(pos="24865")]
+ public function get errorString():String
+ {
+ // derivedName errorString
+ // method_info 275
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 34
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 813
+ 4 pushtrue
+ 5 debugline 813
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 814
+ 10 pushstring "errorString not implemented"
+ 11 call 1
+ 12 pop
+ 13 debugline 815
+ bb2
+ succs=[]
+ 14 pushstring ""
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="25054")]
+ public function set errorString(String):void
+ {
+ // derivedName errorString
+ // method_info 276
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 823
+ 5 pushtrue
+ 6 debugline 823
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 824
+ 11 pushstring "errorString not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 returnvoid
+ }
+
+ [__go_to_definition_help(pos="25323")]
+ private var _owner:mx.core::IUIComponent
+
+ [__go_to_definition_help(pos="25606")]
+ public function get owner():mx.core::IUIComponent
+ {
+ // derivedName owner
+ // method_info 277
+ // max_stack 2
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 29
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 getlex _owner
+ 4 iffalse bb2
+ bb1
+ succs=[bb3]
+ 5 getlex _owner
+ 6 jump bb3
+ bb2
+ succs=[bb3]
+ 7 getlex parent
+ 8 getlex mx.core::IUIComponent
+ 9 debugline 847
+ 10 astypelate
+ bb3
+ succs=[]
+ 11 returnvalue
+ }
+
+ [__go_to_definition_help(pos="25721")]
+ public function set owner(mx.core::IUIComponent):void
+ {
+ // derivedName owner
+ // method_info 278
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _owner
+ 6 debugline 852
+ 7 swap
+ 8 setproperty _owner
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="26623")]
+ public override function get doubleClickEnabled():Boolean
+ {
+ // derivedName doubleClickEnabled
+ // method_info 279
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 33
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 880
+ 4 pushtrue
+ 5 debugline 880
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 881
+ 10 pushstring "doubleClickEnabled not implemented"
+ 11 call 1
+ 12 pop
+ 13 debugline 882
+ bb2
+ succs=[]
+ 14 pushfalse
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="26920")]
+ public override function set doubleClickEnabled(Boolean):void
+ {
+ // derivedName doubleClickEnabled
+ // method_info 280
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 896
+ 5 pushtrue
+ 6 debugline 896
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 897
+ 11 pushstring "doubleClickEnabled not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 returnvoid
+ }
+
+ [__go_to_definition_help(pos="27218")]
+ private var _enabled:Boolean = true
+
+ [__go_to_definition_help(pos="27540")]
+ public function get enabled():Boolean
+ {
+ // derivedName enabled
+ // method_info 281
+ // max_stack 3
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 35
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debugline 922
+ 4 pushtrue
+ 5 debugline 922
+ 6 iffalse bb2
+ bb1
+ succs=[bb2]
+ 7 getlex trace
+ 8 getglobalscope
+ 9 debugline 923
+ 10 pushstring "enabled not implemented"
+ 11 call 1
+ 12 pop
+ bb2
+ succs=[]
+ 13 getlex _enabled
+ 14 debugline 924
+ 15 returnvalue
+ }
+
+ [__go_to_definition_help(pos="27740")]
+ public function set enabled(Boolean):void
+ {
+ // derivedName enabled
+ // method_info 282
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 46
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 debugline 933
+ 5 pushtrue
+ 6 debugline 933
+ 7 iffalse bb2
+ bb1
+ succs=[bb2]
+ 8 getlex trace
+ 9 getglobalscope
+ 10 debugline 934
+ 11 pushstring "enabled not implemented"
+ 12 call 1
+ 13 pop
+ bb2
+ succs=[]
+ 14 getlocal1
+ 15 findproperty _enabled
+ 16 debugline 935
+ 17 swap
+ 18 setproperty _enabled
+ 19 returnvoid
+ }
+
+ [__go_to_definition_help(pos="28098")]
+ private var _focusEnabled:Boolean = true
+
+ [__go_to_definition_help(pos="29030")]
+ public function get focusEnabled():Boolean
+ {
+ // derivedName focusEnabled
+ // method_info 283
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 getlex _focusEnabled
+ 4 debugline 972
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="29157")]
+ public function set focusEnabled(Boolean):void
+ {
+ // derivedName focusEnabled
+ // method_info 284
+ // max_stack 2
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 23
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 getlocal1
+ 5 findproperty _focusEnabled
+ 6 debugline 980
+ 7 swap
+ 8 setproperty _focusEnabled
+ 9 returnvoid
+ }
+
+ [__go_to_definition_help(pos="29459")]
+ private var _hasFocusableChildren:Boolean = false
+
+ [Bindable("hasFocusableChildrenChange")]
+ [__go_to_definition_help(pos="31287")]
+ public function get hasFocusableChildren():Boolean
+ {
+ // derivedName hasFocusableChildren
+ // method_info 285
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 getlex _hasFocusableChildren
+ 4 debugline 1034
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="31430")]
+ public function set hasFocusableChildren(Boolean):void
+ {
+ // derivedName hasFocusableChildren
+ // method_info 286
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 59
+ bb0
+ succs=[bb2,bb1]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 getlocal1
+ 5 getlex _hasFocusableChildren
+ 6 debugline 1042
+ 7 equals
+ 8 not
+ 9 debugline 1042
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty _hasFocusableChildren
+ 13 debugline 1044
+ 14 swap
+ 15 setproperty _hasFocusableChildren
+ 16 findpropstrict dispatchEvent
+ 17 findpropstrict org.apache.royale.events::Event
+ 18 debugline 1045
+ 19 pushstring "hasFocusableChildrenChange"
+ 20 constructprop
+ 21 callpropvoid
+ bb2
+ succs=[]
+ 22 returnvoid
+ }
+
+ [__go_to_definition_help(pos="31774")]
+ private var _tabEnabled:Boolean = true
+
+ [__go_to_definition_help(pos="32247")]
+ private var _tabFocusEnabled:Boolean = true
+
+ [Bindable("tabFocusEnabledChange")]
+ [__go_to_definition_help(pos="33050")]
+ public function get tabFocusEnabled():Boolean
+ {
+ // derivedName tabFocusEnabled
+ // method_info 287
+ // max_stack 1
+ // max_regs 1
+ // scope_depth 0
+ // max_scope 1
+ // code_length 12
+ bb0
+ succs=[]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 getlex _tabFocusEnabled
+ 4 debugline 1103
+ 5 returnvalue
+ }
+
+ [__go_to_definition_help(pos="33183")]
+ public function set tabFocusEnabled(Boolean):void
+ {
+ // derivedName tabFocusEnabled
+ // method_info 288
+ // max_stack 3
+ // max_regs 2
+ // scope_depth 0
+ // max_scope 1
+ // code_length 59
+ bb0
+ succs=[bb1,bb2]
+ 0 getlocal0
+ 1 pushscope
+ 2 debugfile "/Users/aharui/git/royale/ant/royale-asjs/frameworks/projects/MXRoyale/src/main/royale;mx/core;UIComponent.as"
+ 3 debug
+ 4 getlocal1
+ 5 getlex _tabFocusEnabled
+ 6 debugline 1111
+ 7 equals
+ 8 not
+ 9 debugline 1111
+ 10 iffalse bb2
+ bb1
+ succs=[bb2]
+ 11 getlocal1
+ 12 findproperty _tabFocusEnabled
+ 13 debugline 1113
+ 14 swap
+ 15 setproperty _tabFocusEnabled
+ 16 findpropstrict dispatchEvent
+ 17 findpropstrict org.apache.royale.events::Event
+ 18 debugline 1114
+ 19 pushstring "tabFocusEnabledChange"
+ 20 constructprop
+ 21 callpropvoid
... 168934 lines suppressed ...
[royale-asjs] 01/02: try to reuse logic from containers
Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 3225a39e3b60a5525d7a91a2d8ed622697a2e54a
Author: Alex Harui <ah...@apache.org>
AuthorDate: Mon Jul 30 14:59:30 2018 -0700
try to reuse logic from containers
---
frameworks/js/projects/MXRoyaleJS/build.xml | 1 +
.../main/royale/org/apache/royale/core/UIBase.as | 2 +-
frameworks/projects/MXRoyale/build.xml | 2 +
.../src/main/resources/mx-royale-manifest.xml | 3 +
.../MXRoyale/src/main/royale/mx/containers/Box.as | 5 +
.../MXRoyale/src/main/royale/mx/containers/Form.as | 561 +++++
.../src/main/royale/mx/containers/FormHeading.as | 162 +-
.../src/main/royale/mx/containers/FormItem.as | 1460 +++++++++++++
.../main/royale/mx/containers/FormItemDirection.as | 67 +
.../MXRoyale/src/main/royale/mx/containers/Grid.as | 1656 +++++++--------
.../src/main/royale/mx/containers/GridItem.as | 471 +++--
.../src/main/royale/mx/containers/GridRow.as | 1264 ++++++------
.../src/main/royale/mx/containers/TabNavigator.as | 423 ++++
.../src/main/royale/mx/containers/ViewStack.as | 2171 +++++++++++++++-----
.../main/royale/mx/containers/beads/BoxLayout.as | 8 +-
.../mx/containers/gridClasses/GridColumnInfo.as | 11 +-
.../mx/containers/gridClasses/GridRowInfo.as | 309 ++-
.../src/main/royale/mx/controls/FormItemLabel.as | 70 +
.../main/royale/mx/core/ContainerCreationPolicy.as | 109 +
.../src/main/royale/mx/core/IFlexModule.as | 47 +
.../src/main/royale/mx/core/IFlexModuleFactory.as | 153 ++
.../src/main/royale/mx/core/INavigatorContent.as | 68 +
.../src/main/royale/mx/core/UIComponent.as | 111 +-
23 files changed, 6736 insertions(+), 2398 deletions(-)
diff --git a/frameworks/js/projects/MXRoyaleJS/build.xml b/frameworks/js/projects/MXRoyaleJS/build.xml
index 8c89e92..b18022a 100644
--- a/frameworks/js/projects/MXRoyaleJS/build.xml
+++ b/frameworks/js/projects/MXRoyaleJS/build.xml
@@ -58,6 +58,7 @@
<jvmarg value="-Dsun.io.useCanonCaches=false" />
<jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" />
<arg value="+royalelib=${ROYALE_HOME}/frameworks" />
+ <arg value="-compiler.define+=ROYALE::DISPLAYOBJECT,IUIComponent" />
<arg value="-compiler.define+=GOOG::DEBUG,goog.DEBUG" />
<arg value="-compiler.strict-xml=true" />
<arg value="-compiler.targets=SWF,JSRoyale" />
diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
index fc91aff..e73cc4f 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/core/UIBase.as
@@ -818,7 +818,7 @@ package org.apache.royale.core
}
COMPILE::JS
- private var displayStyleForLayout:String;
+ protected var displayStyleForLayout:String;
/**
* The display style is used for both visible
diff --git a/frameworks/projects/MXRoyale/build.xml b/frameworks/projects/MXRoyale/build.xml
index ad3c3b8..7ee03bf 100644
--- a/frameworks/projects/MXRoyale/build.xml
+++ b/frameworks/projects/MXRoyale/build.xml
@@ -90,8 +90,10 @@
<arg value="-compiler.strict-xml=true" />
<arg value="-compiler.targets=SWF,JSRoyale" />
<arg value="-compiler.define+=GOOG::DEBUG,true" />
+ <arg value="-compiler.define+=ROYALE::DISPLAYOBJECT,DisplayObject" />
<arg value="-output=${basedir}/target/${target.name}" />
<arg value="-load-config=${basedir}/src/main/config/compile-swf-config.xml" />
+ <arg value="-js-compiler-define+=ROYALE::DISPLAYOBJECT,IUIComponent" />
<arg value="-js-compiler-define+=GOOG::DEBUG,goog.DEBUG" />
<arg value="-js-compiler-define+=COMPILE::SWF,false" />
<arg value="-js-compiler-define+=COMPILE::JS,true" />
diff --git a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
index b343314..67f7c05 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
+++ b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
@@ -49,6 +49,7 @@
<component id="VDividedBox" class="mx.containers.VDividedBox" />
<component id="Panel" class="mx.containers.Panel" />
<component id="ViewStack" class="mx.containers.ViewStack" />
+ <component id="TabNavigator" class="mx.containers.TabNavigator" />
<component id="ApplicationLayout" class="mx.containers.beads.ApplicationLayout" />
<component id="BoxLayout" class="mx.containers.beads.BoxLayout" />
<component id="CanvasLayout" class="mx.containers.beads.CanvasLayout" />
@@ -98,7 +99,9 @@
<component id="GroupingField" class="mx.collections.GroupingField" />
<component id="MenuBar" class="mx.controls.MenuBar"/>
<component id="NumberFormatter" class="mx.formatters.NumberFormatter"/>
+ <component id="Form" class="mx.containers.Form" />
<component id="FormHeading" class="mx.containers.FormHeading"/>
+ <component id="FormItem" class="mx.containers.FormItem" />
<component id="BarSeries" class="mx.charts.series.BarSeries" />
<component id="XMLListCollection" class="mx.collections.XMLListCollection"/>
<component id="TreeItemRenderer" class="mx.controls.treeClasses.TreeItemRenderer" />
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Box.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Box.as
index cbecd04..41e873b 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Box.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Box.as
@@ -149,6 +149,11 @@ public class Box extends Container
//--------------------------------------------------------------------------
private var _layout:BoxLayout;
+
+ protected function get layoutObject():BoxLayout
+ {
+ return _layout;
+ }
/**
* @private
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Form.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Form.as
new file mode 100644
index 0000000..4275e44
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Form.as
@@ -0,0 +1,561 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+COMPILE::SWF
+{
+import flash.display.DisplayObject;
+}
+
+import mx.containers.beads.BoxLayout;
+import mx.controls.Label;
+import mx.core.Container;
+import mx.core.IFlexModuleFactory;
+import mx.core.IInvalidating;
+import mx.core.IUIComponent;
+import mx.core.mx_internal;
+import mx.styles.IStyleManager2;
+//import mx.styles.StyleManager;
+
+use namespace mx_internal;
+
+//include "../styles/metadata/GapStyles.as";
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+/**
+ * Number of pixels between the label and child components.
+ * The default value is 14.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="indicatorGap", type="Number", format="Length", inherit="yes")]
+
+/**
+ * Width of the form labels.
+ * The default is the length of the longest label in the form.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="labelWidth", type="Number", format="Length", inherit="yes")]
+
+/**
+ * Number of pixels between the container's bottom border
+ * and the bottom edge of its content area.
+ * The default value is 16.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
+
+/**
+ * Number of pixels between the container's top border
+ * and the top edge of its content area.
+ * The default value is 16.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+// Other metadata
+//--------------------------------------
+
+//[IconFile("Form.png")]
+
+//[Alternative(replacement="spark.components.Form", since="4.5")]
+
+/**
+ * The Form container lets you control the layout of a form,
+ * mark form fields as required or optional, handle error messages,
+ * and bind your form data to the Flex data model to perform
+ * data checking and validation.
+ * It also lets you use style sheets to configure the appearance
+ * of your forms.
+ *
+ * <p>The following table describes the components you use to create forms in Flex:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Component</th>
+ * <th>Tag</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Form</td>
+ * <td><code><mx:Form></code></td>
+ * <td>Defines the container for the entire form, including the overall form layout.
+ * Use the FormHeading control and FormItem container to define content.
+ * You can also insert other types of components in a Form container.</td>
+ * </tr>
+ * <tr>
+ * <td>FormHeading</td>
+ * <td><code><mx:FormHeading></code></td>
+ * <td>Defines a heading within your form. You can have multiple FormHeading controls within a single Form container.</td>
+ * </tr>
+ * <tr>
+ * <td>FormItem</td>
+ * <td><code><mx:FormItem></code></td>
+ * <td>Contains one or more form children arranged horizontally or vertically. Children can be controls or other containers.
+ * A single Form container can hold multiple FormItem containers.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:Form></code> tag inherits all the tag
+ * attributes of its superclass and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:Form
+ * <strong>Styles</strong>
+ * horizontalGap="8"
+ * indicatorGap="14"
+ * labelWidth="<i>Calculated</i>"
+ * paddingBottom="16"
+ * paddingTop="16"
+ * verticalGap="6"
+ * >
+ * ...
+ * <i>child tags</i>
+ * ...
+ * </mx:Form>
+ * </pre>
+ *
+ * @includeExample examples/FormExample.mxml
+ *
+ * @see mx.containers.FormHeading
+ * @see mx.containers.FormItem
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class Form extends Container
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Form()
+ {
+ super();
+
+ //showInAutomationHierarchy = true;
+
+ layoutObject.target = this;
+ layoutObject.direction = BoxDirection.VERTICAL;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ mx_internal var layoutObject:BoxLayout = new BoxLayout();
+
+ /**
+ * @private
+ */
+ private var measuredLabelWidth:Number;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden Properties
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override public function set moduleFactory(moduleFactory:IFlexModuleFactory):void
+ {
+ super.moduleFactory = moduleFactory;
+
+ /*
+ styleManager.registerInheritingStyle("labelWidth");
+ styleManager.registerSizeInvalidatingStyle("labelWidth");
+ styleManager.registerInheritingStyle("indicatorGap");
+ styleManager.registerSizeInvalidatingStyle("indicatorGap");
+ */
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // maxLabelWidth
+ //----------------------------------
+
+ [Bindable("updateComplete")]
+
+ /**
+ * The maximum width, in pixels, of the labels of the FormItems containers in this Form.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get maxLabelWidth():Number
+ {
+ var n:int = numChildren;
+ for (var i:int = 0; i < n; i++)
+ {
+ var child:FormItem = getChildAt(i) as FormItem;
+ if (child != null)
+ {
+ var itemLabel:Label = child.itemLabel;
+ if (itemLabel)
+ return itemLabel.width;
+ }
+ }
+
+ return 0;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: DisplayObjectContainer
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Discard the cached measuredLabelWidth if a child
+ * is added or removed.
+ */
+ COMPILE::SWF
+ override public function addChild(child:DisplayObject):DisplayObject
+ {
+ invalidateLabelWidth();
+
+ return super.addChild(child);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ override public function addChildAt(child:DisplayObject,
+ index:int):DisplayObject
+ {
+ invalidateLabelWidth();
+
+ return super.addChildAt(child, index);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ override public function removeChild(child:DisplayObject):DisplayObject
+ {
+ invalidateLabelWidth();
+
+ return super.removeChild(child);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::SWF
+ override public function removeChildAt(index:int):DisplayObject
+ {
+ invalidateLabelWidth();
+
+ return super.removeChildAt(index);
+ }
+
+ /**
+ * @private
+ * Discard the cached measuredLabelWidth if a child
+ * is added or removed.
+ */
+ COMPILE::JS
+ override public function addChild(child:IUIComponent):IUIComponent
+ {
+ invalidateLabelWidth();
+
+ return super.addChild(child);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::JS
+ override public function addChildAt(child:IUIComponent,
+ index:int):IUIComponent
+ {
+ invalidateLabelWidth();
+
+ return super.addChildAt(child, index);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::JS
+ override public function removeChild(child:IUIComponent):IUIComponent
+ {
+ invalidateLabelWidth();
+
+ return super.removeChild(child);
+ }
+
+ /**
+ * @private
+ */
+ COMPILE::JS
+ override public function removeChildAt(index:int):IUIComponent
+ {
+ invalidateLabelWidth();
+
+ return super.removeChildAt(index);
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Calculates the preferred, minimum and maximum sizes of the Form.
+ * For more information about the <code>measure</code> method,
+ * see the <code>UIComponent.measure()</code> method.
+ * <p>The <code>Form.measure()</code> method sets the
+ * <code>measuredWidth</code> property to the width of the
+ * largest child, plus the values of the <code>paddingLeft</code>
+ * and <code>paddingRight</code> style properties and the
+ * width of the border.</p>
+ *
+ * <p>The <code>measuredHeight</code> property is set to the sum
+ * of the <code>measuredHeight</code>S of all children,
+ * plus <code>verticalGap</code> space between each child.
+ * The <code>paddingTop</code> and <code>paddingBottom</code>
+ * style properties and the height of the border are also added.</p>
+ *
+ * <p>The <code>measuredMinWidth</code> property is set to the largest
+ * minimum width of the children.
+ * If the child has a percentage value for <code>width</code>,
+ * the <code>minWidth</code> property is used, otherwise the
+ * <code>measuredWidth</code> property is used.
+ * The values of the <code>paddingLeft</code> and
+ * <code>paddingRight</code> style properties and the width
+ * of the border are also added.</p>
+ *
+ * <p>The <code>measuredMinHeight</code> property is set to the same value
+ * as that of the <code>measuredHeight</code> property.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function measure():void
+ {
+ super.measure();
+
+ layoutObject.measure();
+
+ calculateLabelWidth();
+ }
+
+ /**
+ * Responds to size changes by setting the positions
+ * and sizes of this container's children.
+ * For more information about the <code>updateDisplayList()</code> method,
+ * see the <code>UIComponent.updateDisplayList()</code> method.
+ *
+ * <p>The <code>Form.updateDisplayList()</code> method
+ * positions the children in a vertical column,
+ * spaced by the <code>verticalGap</code> style property.
+ * The <code>paddingLeft</code>, <code>paddingRight</code>,
+ * <code>paddingTop</code> and <code>paddingBottom</code>
+ * style properties are applied.</p>
+ *
+ * <p>If a child has a percentage width,
+ * it is stretched horizontally to the specified
+ * percentage of the Form container; otherwise, it is set
+ * to its <code>measuredWidth</code> property.
+ * Each child is set to its <code>measuredHeight</code> property.</p>
+ *
+ * <p>This method calls the <code>super.updateDisplayList()</code>
+ * method before doing anything else.</p>
+ *
+ * @param unscaledWidth Specifies the width of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleX</code> property of the component.
+ *
+ * @param unscaledHeight Specifies the height of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleY</code> property of the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ layoutObject.updateDisplayList(unscaledWidth, unscaledHeight);
+ }
+
+ /**
+ * @private
+ override public function styleChanged(styleProp:String):void
+ {
+ // Check to see if this is one of the style properties
+ // that is known to affect layout.
+ if (!styleProp ||
+ styleProp == "styleName" ||
+ styleManager.isSizeInvalidatingStyle(styleProp))
+ {
+ invalidateLabelWidth();
+ }
+
+ super.styleChanged(styleProp);
+ }
+ */
+
+ /**
+ * @private
+ * */
+ override public function invalidateSize():void
+ {
+ super.invalidateSize();
+ invalidateLabelWidth();
+ }
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ internal function invalidateLabelWidth():void
+ {
+ // We only need to invalidate the label width
+ // after we've been initialized.
+ if (!isNaN(measuredLabelWidth) && initialized)
+ {
+ measuredLabelWidth = NaN;
+
+ // Need to invalidate the size of all children
+ // to make sure they respond to the label width change.
+ var n:int = numChildren;
+ for (var i:int = 0; i < n; i++)
+ {
+ var child:IUIComponent = IUIComponent(getChildAt(i));
+ if (child is IInvalidating)
+ IInvalidating(child).invalidateSize();
+ }
+ }
+ }
+
+ /**
+ * @private
+ */
+ internal function calculateLabelWidth():Number
+ {
+ // See if we've already calculated it.
+ if (!isNaN(measuredLabelWidth))
+ return measuredLabelWidth;
+
+ var labelWidth:Number = 0;
+ var labelWidthSet:Boolean = false;
+
+ // Determine best label width.
+ var n:int = numChildren;
+ for (var i:int = 0; i < n; i++)
+ {
+ var child:IUIComponent = getChildAt(i) as IUIComponent;
+
+ if (child is FormItem && FormItem(child).includeInLayout)
+ {
+ labelWidth = Math.max(labelWidth,
+ FormItem(child).getPreferredLabelWidth());
+ // only set measuredLabelWidth yet if we have at least one FormItem child
+ labelWidthSet = true;
+ }
+ }
+
+ if (labelWidthSet)
+ measuredLabelWidth = labelWidth;
+
+ return labelWidth;
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormHeading.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormHeading.as
index 97090cf..f6412e4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormHeading.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormHeading.as
@@ -20,16 +20,14 @@
package mx.containers
{
-//import flash.events.Event;
import org.apache.royale.events.Event;
-//import flash.text.TextFieldAutoSize;
import mx.controls.Label;
import mx.core.EdgeMetrics;
import mx.core.UIComponent;
-/*
-include "../styles/metadata/LeadingStyle.as"
-include "../styles/metadata/PaddingStyles.as"
-include "../styles/metadata/TextStyles.as" */
+
+//include "../styles/metadata/LeadingStyle.as"
+//include "../styles/metadata/PaddingStyles.as"
+//include "../styles/metadata/TextStyles.as"
/**
* Number of pixels between the label area and the heading text.
@@ -39,7 +37,7 @@ include "../styles/metadata/TextStyles.as" */
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
//[Style(name="indicatorGap", type="Number", format="Length", inherit="yes")]
@@ -52,7 +50,7 @@ include "../styles/metadata/TextStyles.as" */
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
//[Style(name="labelWidth", type="Number", format="Length", inherit="yes")]
@@ -64,13 +62,13 @@ include "../styles/metadata/TextStyles.as" */
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
//[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
//[IconFile("FormHeading.png")]
-[Alternative(replacement="spark.components.FormHeading", since="4.5")]
+//[Alternative(replacement="spark.components.FormHeading", since="4.5")]
/**
* The FormHeading container is used to display a heading
@@ -121,12 +119,12 @@ include "../styles/metadata/TextStyles.as" */
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
public class FormHeading extends UIComponent
{
- /* include "../core/Version.as";
- */
+// include "../core/Version.as";
+
//--------------------------------------------------------------------------
//
// Constructor
@@ -139,7 +137,7 @@ public class FormHeading extends UIComponent
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
public function FormHeading()
{
@@ -182,7 +180,7 @@ public class FormHeading extends UIComponent
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
public function get label():String
{
@@ -201,9 +199,141 @@ public class FormHeading extends UIComponent
dispatchEvent(new Event("labelChanged"));
}
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override protected function commitProperties():void
+ {
+ super.commitProperties();
+
+ createLabel();
+ }
+
+ /**
+ * @private
+ */
+ override protected function measure():void
+ {
+ super.measure();
+
+ var preferredWidth:Number = 0;
+ var preferredHeight:Number = getStyle("paddingTop");
+
+ if (labelObj)
+ {
+ if (isNaN(labelObj.measuredWidth))
+ labelObj.validateSize();
+
+ preferredWidth = labelObj.measuredWidth;
+ preferredHeight += labelObj.measuredHeight;
+ }
+
+ preferredWidth += getLabelWidth() + getStyle("indicatorGap");
+
+ measuredMinWidth = preferredWidth;
+ measuredMinHeight = preferredHeight;
+ measuredWidth = preferredWidth;
+ measuredHeight = preferredHeight;
+ }
+
+ /**
+ * @private
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ if (labelObj)
+ {
+ var indicatorGap:Number = getStyle("indicatorGap");
+ var paddingTop:Number = getStyle("paddingTop");
+ var labelWidth:Number = width;
+
+ labelObj.move(getLabelWidth() + indicatorGap, paddingTop);
+
+ if (parent && parent is Form)
+ {
+ var vm:EdgeMetrics = Form(parent).viewMetricsAndPadding;
+
+ labelWidth = (parent as Form).width -
+ (getLabelWidth() + indicatorGap + vm.left + vm.right);
+ }
+
+ labelObj.setActualSize(labelWidth, height);
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private function createLabel():void
+ {
+ // See if we need to create our labelObj.
+ if (_label && _label.length > 0)
+ {
+ if (!labelObj)
+ {
+ labelObj = new Label();
+ labelObj.styleName = this;
+ addChild(labelObj);
+ }
+
+ if (labelObj.text != _label)
+ {
+ labelObj.text = _label;
+
+ labelObj.validateSize();
+
+ invalidateSize();
+ invalidateDisplayList();
+ }
+ }
+
+ // See if we need to destroy our labelObj.
+ if ((_label==null || _label.length == 0) && labelObj)
+ {
+ removeChild(labelObj);
+ labelObj = null;
+
+ invalidateSize();
+ invalidateDisplayList();
+ }
+ }
+
+ /**
+ * @private
+ */
+ private function getLabelWidth():Number
+ {
+ var labelWidth:Number = getStyle("labelWidth");
+ // labelWidth of 0 is the same as NaN
+ if (labelWidth == 0)
+ {
+ labelWidth = NaN;
+ }
-
+ if (isNaN(labelWidth) && parent is Form)
+ labelWidth = Form(parent).calculateLabelWidth();
+
+ if (isNaN(labelWidth))
+ labelWidth = 0;
+
+ return labelWidth;
+ }
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItem.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItem.as
new file mode 100644
index 0000000..e22b0be
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItem.as
@@ -0,0 +1,1460 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+COMPILE::SWF
+{
+import flash.display.DisplayObject;
+}
+import org.apache.royale.core.IChild;
+import org.apache.royale.events.Event;
+
+import mx.containers.beads.BoxLayout;
+import mx.containers.utilityClasses.Flex;
+import mx.controls.FormItemLabel;
+import mx.controls.Label;
+import mx.core.Container;
+import mx.core.EdgeMetrics;
+import mx.core.IFlexDisplayObject;
+import mx.core.IUIComponent;
+import mx.core.mx_internal;
+import mx.core.ScrollPolicy;
+import mx.styles.CSSStyleDeclaration;
+
+use namespace mx_internal;
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+//include "../styles/metadata/GapStyles.as";
+
+/**
+ * Horizontal alignment of children in the container.
+ * Possible values are <code>"left"</code>, <code>"center"</code>,
+ * and <code>"right"</code>.
+ *
+ * @default "left"
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
+
+/**
+ * Number of pixels between the label and child components of the form item.
+ *
+ * @default 14
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="indicatorGap", type="Number", format="Length", inherit="yes")]
+
+/**
+ * Specifies the skin to use for the required field indicator.
+ *
+ * The default value is the "mx.containers.FormItem.Required" symbol in the Assets.swf file.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="indicatorSkin", type="Class", inherit="no")]
+
+/**
+ * Name of the CSS Style declaration to use for the styles for the
+ * FormItem's label.
+ * By default, the label uses the FormItem's inheritable styles or
+ * those declared by FormItemLabel. This style should be used instead
+ * of FormItemLabel.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="labelStyleName", type="String", inherit="no")]
+
+/**
+ * Width of the form labels.
+ * The default is the length of the longest label in the form.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="labelWidth", type="Number", format="Length", inherit="yes")]
+
+/**
+ * Number of pixels between the container's bottom border
+ * and the bottom edge of its content area.
+ *
+ * @default 0
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
+
+/**
+ * Number of pixels between the container's right border
+ * and the right edge of its content area.
+ *
+ * @default 0
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingRight", type="Number", format="Length", inherit="no")]
+
+/**
+ * Number of pixels between the container's top border
+ * and the top edge of its content area.
+ *
+ * @default 0
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+// Other metadata
+//--------------------------------------
+
+//[IconFile("FormItem.png")]
+
+//[Alternative(replacement="spark.components.FormItem", since="4.5")]
+
+/**
+ * The FormItem container defines a label and one or more children
+ * arranged horizontally or vertically.
+ * Children can be controls or other containers.
+ * A single Form container can hold multiple FormItem containers.
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:FormItem></code> tag inherits all of the tag
+ * attributes of its superclass, except <code>paddingLeft</code>,
+ * and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:FormItem
+ * <strong>Properties</strong>
+ * direction="vertical|horizontal"
+ * label=""
+ * required="false|true"
+ *
+ * <strong>Styles</strong>
+ * horizontalAlign="left|center|right"
+ * horizontalGap="8"
+ * indicatorGap="14"
+ * indicatorSkin="<i>'mx.containers.FormItem.Required' symbol in Assets.swf</i>"
+ * labelStyleName=""
+ * labelWidth="<i>Calculated</i>"
+ * paddingBottom="0"
+ * paddingRight="0"
+ * paddingTop="0"
+ * verticalGap="6"
+ * >
+ * ...
+ * <i>child tags</i>
+ * ...
+ * </mx:FormItem>
+ * </pre>
+ *
+ * @see mx.containers.Form
+ * @see mx.containers.FormItemDirection
+ * @see mx.containers.FormHeading
+ * @see mx.controls.FormItemLabel
+ *
+ * @includeExample examples/FormExample.mxml
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class FormItem extends Container
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function FormItem()
+ {
+ super();
+
+ /*
+ _horizontalScrollPolicy = ScrollPolicy.OFF;
+ _verticalScrollPolicy = ScrollPolicy.OFF;
+ */
+
+ verticalLayoutObject.target = this;
+ verticalLayoutObject.direction = BoxDirection.VERTICAL;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * A reference to the FormItemLabel subcomponent.
+ */
+ private var labelObj:Label;
+
+ /**
+ * @private
+ * A reference to the "required" indicator.
+ */
+ private var indicatorObj:IFlexDisplayObject;
+
+ /**
+ * @private
+ */
+ private var guessedRowWidth:Number;
+
+ /**
+ * @private
+ */
+ private var guessedNumColumns:int;
+
+ /**
+ * @private
+ */
+ private var numberOfGuesses:int = 0;
+
+ /**
+ * @private
+ * We use the VBox algorithm when direction="vertical" and make a few adjustments
+ */
+ mx_internal var verticalLayoutObject:BoxLayout = new BoxLayout();
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties
+ //
+ //-------------------------------------------------------------------------
+
+ //----------------------------------
+ // label
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the label property.
+ */
+ private var _label:String = "";
+
+ private var labelChanged:Boolean = false;
+
+ [Bindable("labelChanged")]
+ [Inspectable(category="General", defaultValue="")]
+
+ /**
+ * Text label for the FormItem. This label appears to the left of the
+ * child components of the form item. The position of the label is
+ * controlled by the <code>textAlign</code> style property.
+ *
+ * @default ""
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ /*override*/ public function get label():String
+ {
+ return _label;
+ }
+
+ /**
+ * @private
+ */
+ /*override*/ public function set label(value:String):void
+ {
+ _label = value;
+ labelChanged = true;
+
+ invalidateProperties();
+ invalidateSize();
+ invalidateDisplayList();
+
+ // Changing the label could affect the overall form label width
+ // so we need to invalidate our parent's size here too
+ if (parent is Form)
+ Form(parent).invalidateLabelWidth();
+
+ dispatchEvent(new Event("labelChanged"));
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // direction
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the direction property.
+ */
+ private var _direction:String = FormItemDirection.VERTICAL;
+
+ [Bindable("directionChanged")]
+ [Inspectable(category="General", enumeration="vertical,horizontal", defaultValue="vertical")]
+
+ /**
+ * Direction of the FormItem subcomponents.
+ * Possible MXML values are <code>"vertical"</code>
+ * or <code>"horizontal"</code>.
+ * The default MXML value is <code>"vertical"</code>.
+ * Possible ActionScript values are <code>FormItemDirection.VERTICAL</code>
+ * or <code>FormItemDirection.HORIZONTAL</code>.
+ *
+ * <p>When <code>direction</code> is <code>"vertical"</code>,
+ * the children of the FormItem are stacked vertically
+ * to the right of the FormItem label.
+ * When <code>direction</code> is <code>"horizontal"</code>,
+ * the children are placed in a single row (if they fit),
+ * or in two equally-sized columns.</p>
+ *
+ * <p>If you need more control over the layout of FormItem children,
+ * you can use a container such as Grid or Tile as the direct child
+ * of the FormItem and put the desired controls inside it.</p>
+ *
+ * @default FormItemDirection.VERTICAL
+ * @see mx.containers.FormItemDirection
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get direction():String
+ {
+ return _direction;
+ }
+
+ /**
+ * @private
+ */
+ public function set direction(value:String):void
+ {
+ _direction = value;
+
+ invalidateSize();
+ invalidateDisplayList();
+
+ dispatchEvent(new Event("directionChanged"));
+ }
+
+ //----------------------------------
+ // itemLabel
+ //----------------------------------
+
+ [Bindable("itemLabelChanged")]
+
+ /**
+ * A read-only reference to the FormItemLabel subcomponent
+ * displaying the label of the FormItem.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get itemLabel():Label
+ {
+ return labelObj;
+ }
+
+ //----------------------------------
+ // required
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the required property.
+ */
+ private var _required:Boolean = false;
+
+ [Bindable("requiredChanged")]
+ [Inspectable(category="General", defaultValue="false")]
+
+ /**
+ * If <code>true</code>, display an indicator
+ * that the FormItem children require user input.
+ * If <code>false</code>, indicator is not displayed.
+ *
+ * <p>This property controls the indicator display only.
+ * You must attach a validator to the children
+ * if you require input validation.</p>
+ *
+ * @default false
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get required():Boolean
+ {
+ return _required;
+ }
+
+ /**
+ * @private
+ */
+ public function set required(value:Boolean):void
+ {
+ if (value != _required)
+ {
+ _required = value;
+
+ invalidateDisplayList();
+
+ dispatchEvent(new Event("requiredChanged"));
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override public function set includeInLayout(value:Boolean):void
+ {
+ super.includeInLayout = value;
+ if(value)
+ invalidateSize();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override protected function createChildren():void
+ {
+ super.createChildren();
+
+ if (!labelObj)
+ {
+ labelObj = new FormItemLabel();
+
+ /*
+ var labelStyleName:String = getStyle("labelStyleName");
+ if (labelStyleName)
+ {
+ var styleDecl:CSSStyleDeclaration =
+ styleManager.getMergedStyleDeclaration("." + labelStyleName);
+
+ if (styleDecl)
+ labelObj.styleDeclaration = styleDecl;
+ }
+ */
+
+ strandChildren.addElement(labelObj);
+ dispatchEvent(new Event("itemLabelChanged"));
+ }
+ }
+
+ /**
+ * @private
+ */
+ override protected function commitProperties():void
+ {
+ super.commitProperties();
+
+ if (labelChanged)
+ {
+ labelObj.text = label;
+ labelObj.validateSize();
+ labelChanged = false;
+ }
+ }
+
+ /**
+ * Calculates the preferred, minimum and maximum sizes of the FormItem.
+ * See the <code>UIComponent.measure()</code> method for more information
+ * about the <code>measure()</code> method.
+ *
+ * <p>The <code>FormItem.measure()</code> method first determines
+ * the number of columns to use.
+ * If the <code>direction</code> property is
+ * <code>FormItemDirection.HORIZONTAL</code>,
+ * all controls will be placed in a single row if possible.
+ * If the controls cannot fit in a single row, they are split
+ * into two columns. If that does not work, then use
+ * a single column. If <code>direction</code> is
+ * <code>FormItemDirection.VERTICAL</code>, the controls are
+ * placed in a single column (like <code>VBox</code>).</p>
+ *
+ * <p>A FormItem contains two areas: the label area
+ * and the controls area.
+ * The size of the label is the same
+ * regardless of the direction of the controls.
+ * The size of the control area depends on how many rows
+ * and columns are used.</p>
+ *
+ * <p>The width of the label area is determined by the
+ * <code>labelWidth</code> style property.
+ * If this property is <code>undefined</code> (which is the default),
+ * the width of the largest label in the parent Form container
+ * is used.</p>
+ *
+ * <p>If all children are on a single row, the width of the
+ * control area is the sum of the widths of all the children
+ * plus <code>horizontalGap</code> space between the children.</p>
+ *
+ * <p>If the children are on a single column,
+ * the width of the control area is the width of the widest child.</p>
+ *
+ * <p>If the children are on multiple rows and columns,
+ * the width of the widest child is the column width,
+ * and the width of the control area is the column width
+ * multiplied by the number of columns plus the
+ * <code>horizontalGap</code> space between each column.</p>
+ *
+ * <p><code>measuredWidth</code> is set to the
+ * width of the label area plus the width of the control area
+ * plus the value of the <code>indicatorGap</code> style property.
+ * The values of the <code>paddingLeft</code> and
+ * <code>paddingRight</code> style properties
+ * and the width of the border are also added.</p>
+ *
+ * <p><code>measuredHeight</code> is set to the
+ * sum of the preferred heights of all rows of children,
+ * plus <code>verticalGap</code> space between each child.
+ * The <code>paddingTop</code> and <code>paddingBottom</code>
+ * style properties and the height of the border are also added.</p>
+ *
+ * <p><code>measuredMinWidth</code> is set to the width of the
+ * label area plus the minimum width of the control area
+ * plus the value of the <code>indicatorGap</code> style property.
+ * The values of the <code>paddingLeft</code> and
+ * <code>paddingRight</code> style properties
+ * and the width of the border are also added.</p>
+ *
+ * <p><code>measuredMinHeight</code> is set to the
+ * sum of the minimum heights of all rows of children,
+ * plus <code>verticalGap</code> space between each child.
+ * The <code>paddingTop</code> and <code>paddingBottom</code>
+ * style properties and the height of the border are also added.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function measure():void
+ {
+ super.measure();
+
+ if (direction == FormItemDirection.VERTICAL)
+ measureVertical();
+ else
+ measureHorizontal();
+ }
+
+ private function measureVertical():void
+ {
+ // use VBox and then take into account label, indictor gap
+ verticalLayoutObject.measure();
+
+ // Need to include label and indictor gap for width
+ var extraWidth:Number = calculateLabelWidth() + getStyle("indicatorGap");
+
+ measuredMinWidth += extraWidth;
+ measuredWidth += extraWidth;
+
+ // need to include label for height
+ var labelHeight:Number = labelObj.getExplicitOrMeasuredHeight();
+
+ measuredMinHeight = Math.max(measuredMinHeight, labelHeight);
+ measuredHeight = Math.max(measuredHeight, labelHeight);
+ }
+
+ private function measureHorizontal():void
+ {
+ // Take a guess at the number of columns we are going to use.
+ // Initially guessedRowWidth is NaN (which means we try to squeeze
+ // it on one row), but after first call to updateDisplayList, it
+ // gets updated with the approximate width the children can have.
+ // This lets use better estimate how many columns we can have
+ // Check out updateDisplayList() for more info on this and what if
+ // our initial guess was wrong.
+ var numColumns:int = guessedNumColumns =
+ calcNumColumns(guessedRowWidth);
+
+ var horizontalGap:Number = getStyle("horizontalGap");
+ var verticalGap:Number = getStyle("verticalGap");
+ var indicatorGap:Number = getStyle("indicatorGap");
+
+ var tempMinWidth:Number = 0;
+ var tempWidth:Number = 0;
+ var tempMinHeight:Number = 0;
+ var tempHeight:Number = 0;
+
+ var minWidth:Number = 0;
+ var minHeight:Number = 0;
+ var preferredWidth:Number = 0;
+ var preferredHeight:Number = 0;
+ var maxPreferredWidth:Number = 0;
+
+ var i:int;
+ var col:int = 0;
+ var child:IUIComponent;
+
+ // If the children span multiple rows,
+ // then updateDisplayList() (below) sets all column widths to the
+ // preferredWidth of the largest child.
+
+ // To find the max. preferred width, just loop through
+ // all the children
+ if (numColumns < numChildren)
+ {
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ continue;
+
+ maxPreferredWidth = Math.max(
+ maxPreferredWidth, child.getExplicitOrMeasuredWidth());
+ }
+ }
+
+ var row:int = 0;
+
+ // Now with the columnWidth (maxPreferredWidth) figured out,
+ // figure out the number of rows needed and calculate the
+ // minWidth/height and the preferredWidth/Height
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ continue;
+
+ tempMinWidth += !isNaN(child.percentWidth) ?
+ child.minWidth :
+ child.getExplicitOrMeasuredWidth();
+
+ tempWidth += (maxPreferredWidth > 0) ?
+ maxPreferredWidth :
+ child.getExplicitOrMeasuredWidth();
+
+ // if on anything but 1st column
+ if (col > 0)
+ {
+ tempMinWidth += horizontalGap;
+ tempWidth += horizontalGap;
+ }
+
+ tempMinHeight = Math.max(tempMinHeight,
+ !isNaN(child.percentHeight) ?
+ child.minHeight :
+ child.getExplicitOrMeasuredHeight());
+
+ tempHeight = Math.max(tempHeight,
+ child.getExplicitOrMeasuredHeight());
+
+ col++;
+
+ // if at the last column in the row
+ if (col >= numColumns || i == (numChildren-1))
+ {
+ minWidth = Math.max(minWidth, tempMinWidth);
+ preferredWidth = Math.max(preferredWidth, tempWidth);
+
+ minHeight += tempMinHeight;
+ preferredHeight += tempHeight;
+
+ // if on anything but 1st row
+ if (row > 0)
+ {
+ minHeight += verticalGap;
+ preferredHeight += verticalGap;
+ }
+
+ col = 0;
+ row++;
+
+ tempMinWidth = 0;
+ tempWidth = 0;
+
+ tempMinHeight = 0;
+ tempHeight = 0;
+ }
+ }
+
+ // Need to also account for label and indicator gap
+ var labelWidth:Number = calculateLabelWidth() + indicatorGap;
+ minWidth += labelWidth;
+ preferredWidth += labelWidth;
+
+ if (label != null && label != "")
+ {
+ minHeight = Math.max(minHeight,
+ labelObj.getExplicitOrMeasuredHeight());
+
+ preferredHeight = Math.max(preferredHeight,
+ labelObj.getExplicitOrMeasuredHeight());
+ }
+
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+
+ minHeight += vm.top + vm.bottom;
+ minWidth += vm.left + vm.right;
+
+ preferredHeight += vm.top + vm.bottom;
+ preferredWidth += vm.left + vm.right;
+
+ measuredMinWidth = minWidth;
+ measuredMinHeight = minHeight;
+
+ measuredWidth = preferredWidth;
+ measuredHeight = preferredHeight;
+ }
+
+ /**
+ * Responds to size changes by setting the positions and sizes
+ * of this container's children.
+ * See the <code>UIComponent.updateDisplayList()</code> method
+ * for more information about the <code>updateDisplayList()</code> method.
+ *
+ * <p>See the <code>FormItem.measure()</code> method for more
+ * information on how the FormItem controls are positioned.</p>
+ *
+ * <p>The label is aligned in the label area according to the <code>textAlign</code> style property.
+ * All labels in a form are aligned with each other.</p>
+ *
+ * <p>If the <code>required</code> property is <code>true</code>,
+ * a symbol indicating the field is required is placed between
+ * the label and the controls.</p>
+ *
+ * <p>The controls are positioned in columns, as described in the
+ * documentation for the <code>measure()</code> method.
+ * The <code>horizontalAlign</code> style property
+ * determines where the controls are placed horizontally.</p>
+ *
+ * <p>When the <code>direction</code> property is
+ * <code>"vertical"</code>, any child that has no <code>width</code>
+ * specified uses the <code>measuredWidth</code> rounded up
+ * to the nearest 1/4 width of the control area.
+ * This is done to avoid jagged right edges of controls.</p>
+ *
+ * <p>This method calls the <code>super.updateDisplayList()</code>
+ * method before doing anything else.</p>
+ *
+ * @param unscaledWidth Specifies the width of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleX</code> property of the component.
+ *
+ * @param unscaledHeight Specifies the height of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleY</code> property of the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ if (direction == FormItemDirection.VERTICAL)
+ {
+ updateDisplayListVerticalChildren(unscaledWidth, unscaledHeight);
+ }
+ else
+ {
+ updateDisplayListHorizontalChildren(unscaledWidth, unscaledHeight);
+ }
+
+ // Position our label now that our children have been positioned.
+ // Moving our children can affect the baselinePosition. (Bug 86725)
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+
+ // we have x,y with respect to viewMetricsAndPadding here b/c
+ // labelObj is added to rawChildren. The children of FormItem
+ // are added to a container object, so start at paddingLeft
+ // and paddingTop (as the containerObj has border around it)
+ var x:Number = vm.left;
+ var y:Number = vm.top;
+
+ var labelWidth:Number = calculateLabelWidth();
+
+ var child:IUIComponent;
+ var childBaseline:Number;
+
+ /*
+ // Position our label.
+ if (numChildren > 0)
+ {
+ // Center label with first child
+ child = getLayoutChildAt(0);
+ childBaseline = child.baselinePosition;
+ if (!isNaN(childBaseline))
+ y += childBaseline - labelObj.baselinePosition;
+ }
+ */
+
+ // Set label size.
+ labelObj.setActualSize(labelWidth, labelObj.getExplicitOrMeasuredHeight());
+ labelObj.move(x, y);
+
+ x += labelWidth;
+
+ // Position the "required" indicator.
+ displayIndicator(x, y);
+ }
+
+ private function updateDisplayListVerticalChildren(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ // Need to include label and indictor gap for width
+ var extraWidth:Number = calculateLabelWidth() + getStyle("indicatorGap");
+
+ // a little bit of a hack, but need the target to have a good minWidth as well
+ if (!isNaN(explicitMinWidth))
+ _explicitMinWidth -= extraWidth;
+ else if (!isNaN(measuredMinWidth))
+ measuredMinWidth -= extraWidth;
+
+ // Use the VBox algorithm and then shift everything to the left by
+ // labeWidth + indicatorGap. Also put where the label should go
+ verticalLayoutObject.updateDisplayList(unscaledWidth - extraWidth, unscaledHeight);
+
+ // reset minWidth from hack
+ if (!isNaN(explicitMinWidth))
+ _explicitMinWidth += extraWidth;
+ else if (!isNaN(measuredMinWidth))
+ measuredMinWidth += extraWidth;
+
+ var n:Number = numChildren;
+ var child:IUIComponent;
+
+ for (var i:Number = 0; i < n; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ child.move(child.x + extraWidth, child.y);
+ }
+ }
+
+ private function updateDisplayListHorizontalChildren(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ // The layout algorithm is similar to BoxLayout, but it has to
+ // figure out how many rows/columns to use
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+
+ var labelWidth:Number = calculateLabelWidth();
+
+ var indicatorGap:Number = getStyle("indicatorGap");
+ var horizontalGap:Number = getStyle("horizontalGap");
+ var verticalGap:Number = getStyle("verticalGap");
+ var paddingLeft:Number = getStyle("paddingLeft");
+ var paddingTop:Number = getStyle("paddingTop");
+ var horizontalAlignValue:Number = getHorizontalAlignValue();
+
+ var mw:Number = scaleX > 0 && scaleX != 1 ?
+ minWidth / Math.abs(scaleX) :
+ minWidth;
+ var mh:Number = scaleY > 0 && scaleY != 1 ?
+ minHeight / Math.abs(scaleY) :
+ minHeight;
+
+ var w:Number = Math.max(unscaledWidth, mw) - vm.left - vm.right;
+ var h:Number = Math.max(unscaledHeight, mh) - vm.top - vm.bottom;
+
+ var maxWidth:Number = 0;
+
+ var controlWidth:Number = w - labelWidth - indicatorGap;
+ if (controlWidth < 0)
+ controlWidth = 0;
+
+ var i:int;
+ var child:IUIComponent;
+ var childWidth:Number;
+ var childHeight:Number;
+
+ // Earlier, the measure function took a guess at the number
+ // of columns, but that function didn't know the width of this
+ // FormItem. Now that we know the width, we may discover that the
+ // guess was wrong. In that case, call invalidateSize(), so that
+ // we loop back and repeat the measurement phase again.
+ //
+ // It's possible that we might introduce an infinite loop - the
+ // new guess might change the layout, so that the guess once again
+ // is found to be wrong. If we get back here a second time and
+ // discover that the guess is still wrong, we'll just live with it.
+ var numColumns:int = calcNumColumns(controlWidth);
+ var col:int = 0;
+
+ if (numColumns != guessedNumColumns && isNaN(explicitWidth))
+ {
+ if (numberOfGuesses < 2)
+ {
+ // try again where third one's a charm
+ // we actually pick 3 for a real reason.
+ // numColumns is either 1,2, or numChildren
+ guessedRowWidth = controlWidth;
+ numberOfGuesses++;
+ invalidateSize();
+ return;
+ }
+ else
+ {
+ // make best of what we got
+ // we use our old guess b/c that's what we
+ // measured() for
+ numColumns = guessedNumColumns;
+ numberOfGuesses = 0;
+ }
+ }
+ else
+ {
+ numberOfGuesses = 0;
+ }
+
+ var left:Number = paddingLeft + labelWidth + indicatorGap;
+ var top:Number = paddingTop;
+ var x:Number = left;
+ var y:Number = top;
+
+ var wPref:Number;
+ var hPref:Number;
+ var percentWidth:Number;
+ var percentHeight:Number;
+
+ var numChildrenWithOwnSpace:int = numChildren;
+ for (i = 0; i < numChildren; i++)
+ {
+ if (!IUIComponent(getChildAt(i)).includeInLayout)
+ numChildrenWithOwnSpace--;
+ }
+
+ // Special case for single row - use the HBox layout algorithm.
+ if (numColumns == numChildrenWithOwnSpace)
+ {
+ var excessSpace:Number = Flex.flexChildWidthsProportionally(
+ this, controlWidth - (numChildrenWithOwnSpace - 1) * horizontalGap, h);
+
+ left += (excessSpace * horizontalAlignValue);
+
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ continue;
+
+ child.move(Math.floor(left), top);
+ left += child.width + horizontalGap;
+ }
+ }
+ else
+ {
+ // We need to determine the column width. We do this by
+ // determining the widest child. This time we take into
+ // account percentages (in calcNumColumns we don't b/c we
+ // don't know what controlWidth will be)
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ continue;
+
+ wPref = child.getExplicitOrMeasuredWidth();
+ percentWidth = child.percentWidth;
+
+ childWidth = !isNaN(percentWidth) ? (percentWidth*controlWidth)/100 : wPref;
+ childWidth = Math.max(child.minWidth, Math.min(child.maxWidth, childWidth));
+
+ maxWidth = Math.max(maxWidth, childWidth);
+ }
+
+ // need to make sure we didn't overstep our bounds,
+ // and we need to account for horizontalGap with maxWidth
+ maxWidth = Math.min(maxWidth, Math.floor((controlWidth -
+ ((numColumns-1) * horizontalGap))/numColumns))
+
+ // Determine the left side for the columns:
+ // (left over space * horizontalAlignValue)
+ var widthSlop:Number = controlWidth -
+ (numColumns * maxWidth + (numColumns - 1) * horizontalGap);
+ if (widthSlop < 0)
+ widthSlop = 0;
+
+ left += (widthSlop * horizontalAlignValue);
+
+ var rowPercentHeight:Number = 0;
+ var rowMaxHeight:Number = 0;
+ var totalPercentHeight:Number = 0;
+ var heightSpaceForChildren:Number = h;
+ var heightSpaceToDistribute:Number = heightSpaceForChildren;
+ col = 0;
+
+ // Place the children in columns
+ // need to figure out spacePerPercent for height first.
+ // Loop through all children and take into account
+ // the fixed height and the percentage height for each row
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ {
+ // need to make sure not done with the row b/c then need to do stuff
+ if (i == numChildren - 1)
+ {
+ heightSpaceToDistribute -= rowMaxHeight;
+
+ // if not on last row, take into account verticalGap
+ if (i != (numChildren-1))
+ heightSpaceToDistribute -= verticalGap;
+
+ // discount some of the percent height if there's fixed height in same row
+ if (rowMaxHeight > 0 && rowPercentHeight > 0)
+ {
+ rowPercentHeight = Math.max(0, rowPercentHeight -
+ (100*rowMaxHeight)/heightSpaceForChildren);
+ }
+
+ totalPercentHeight += rowPercentHeight;
+
+ rowMaxHeight = 0;
+ rowPercentHeight = 0;
+ col = 0;
+ }
+ continue;
+ }
+
+ if (!isNaN(child.percentHeight))
+ {
+ rowPercentHeight = Math.max(rowPercentHeight,
+ child.percentHeight);
+ }
+ else
+ {
+ rowMaxHeight = Math.max(rowMaxHeight,
+ child.getExplicitOrMeasuredHeight());
+ }
+
+ // if done with the row, sum up the height totals
+ if (++col >= numColumns || i == numChildren - 1)
+ {
+ heightSpaceToDistribute -= rowMaxHeight;
+
+ // if not on last row, take into account verticalGap
+ if (i != (numChildren-1))
+ heightSpaceToDistribute -= verticalGap;
+
+ // discount some of the percent height if there's fixed height in same row
+ if (rowMaxHeight > 0 && rowPercentHeight > 0)
+ {
+ rowPercentHeight = Math.max(0, rowPercentHeight -
+ (100*rowMaxHeight)/heightSpaceForChildren);
+ }
+
+ totalPercentHeight += rowPercentHeight;
+
+ rowMaxHeight = 0;
+ rowPercentHeight = 0;
+ col = 0;
+ }
+ }
+
+ var done:Boolean = false;
+
+ // Continue as long as there are some remaining flexible children.
+ // The "done" flag isn't strictly necessary, except that it catches
+ // cases where round-off error causes totalPercent to not exactly
+ // equal zero.
+
+ // explicitHeightChildren is for storing explicitly set heights
+ // because of a max/min problem. By default, everything is set to
+ // -1, which means to look at the child's own height (may
+ // be explicitHeight or based on percentHeight). If it's not
+ // -1, then use the value in explicitHeightChildren as it's
+ // either the max or min height the child can be.
+ var explicitHeightChildren:Array = new Array(numChildren);
+ for (i = 0; i < numChildren; i++)
+ {
+ explicitHeightChildren[i] = -1;
+ }
+
+ // We now do something a little tricky so that we can
+ // support partial filling of the space. If our total
+ // percent < 100% then we can trim off some space.
+ var unused:Number = heightSpaceToDistribute -
+ (heightSpaceForChildren * totalPercentHeight / 100);
+ if (unused > 0)
+ heightSpaceToDistribute -= unused;
+
+ do
+ {
+ done = true; // we are optimistic
+
+ // Space for flexible children is the total amount of space
+ // available minus the amount of space consumed by non-flexible
+ // components.Divide that space in proportion to the percent
+ // of the child
+ var heightSpacePerPercent:Number = heightSpaceToDistribute / totalPercentHeight;
+
+ col = 0;
+ x = left;
+ y = top;
+ var rowMaxChildHeight:Number = 0;
+
+ // Attempt to divide out the space using our percent amounts,
+ // if we hit its limit then that control becomes 'non-flexible'
+ // and we run the whole space to distribute calculation again.
+ for (i = 0; i < numChildren; i++)
+ {
+ child = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ continue;
+
+ wPref = child.getExplicitOrMeasuredWidth();
+ hPref = child.getExplicitOrMeasuredHeight();
+ percentWidth = child.percentWidth;
+ percentHeight = child.percentHeight;
+
+ // childWidth can't exceed maxWidth (columnWidth) or it's own max/min widths
+ childWidth = Math.min(maxWidth,
+ !isNaN(percentWidth) ? (percentWidth*controlWidth)/100 : wPref);
+ childWidth = Math.max(child.minWidth, Math.min(child.maxWidth, childWidth));
+
+ // if the child has been explicitely sized b/c of a max/min issue
+ // from a previous run, then use that. Otherwise, ask the child for
+ // it's height.
+ if (explicitHeightChildren[i] != -1)
+ {
+ childHeight = explicitHeightChildren[i];
+ }
+ else
+ {
+ childHeight = !isNaN(percentHeight) ?
+ percentHeight*heightSpacePerPercent : hPref;
+
+ // If our flexiblity calc say grow/shrink more than we are
+ // allowed, then we grow/shrink whatever we can, remove
+ // ourselves from the array (with explicitHeightChildren)
+ // for the next pass, and start
+ // the loop over again so that the space that we weren't
+ // able to consume / release can be re-used by others.
+ if (childHeight < child.minHeight)
+ {
+ childHeight = child.minHeight;
+ totalPercentHeight -= child.percentHeight;
+ heightSpaceToDistribute -= childHeight;
+
+ explicitHeightChildren[i] = childHeight;
+ done = false;
+ break;
+ }
+ else if (childHeight > child.maxHeight)
+ {
+ childHeight = child.maxHeight;
+ totalPercentHeight -= child.percentHeight;
+ heightSpaceToDistribute -= childHeight;
+
+ explicitHeightChildren[i] = childHeight;
+ done = false;
+ break;
+ }
+ }
+
+ // All is well, let's carry on...
+
+ if (child.scaleX == 1 && child.scaleY == 1)
+ {
+ child.setActualSize(Math.floor(childWidth),
+ Math.floor(childHeight));
+ }
+ else
+ {
+ child.setActualSize(childWidth, childHeight);
+ }
+
+ // horizontal align all of controlWidth and also children within each column
+ var xOffset:Number = (maxWidth - child.width) * horizontalAlignValue;
+ child.move(Math.floor(x + xOffset), Math.floor(y));
+
+ rowMaxChildHeight = Math.max(rowMaxChildHeight, child.height);
+
+ if (++col >= numColumns)
+ {
+ x = left;
+ col = 0;
+ y += rowMaxChildHeight + verticalGap;
+ rowMaxChildHeight = 0;
+ }
+ else
+ {
+ x += maxWidth + horizontalGap;
+ }
+ }
+ }
+ while (!done);
+ }
+ }
+
+ /**
+ * @private
+ */
+ override public function styleChanged(styleProp:String):void
+ {
+ super.styleChanged(styleProp);
+
+ var allStyles:Boolean = styleProp == null || styleProp == "styleName";
+
+ if (allStyles || styleProp == "labelStyleName")
+ {
+ /*
+ if (labelObj)
+ {
+ var labelStyleName:String = getStyle("labelStyleName");
+
+ if (labelStyleName)
+ {
+ var styleDecl:CSSStyleDeclaration =
+ styleManager.getMergedStyleDeclaration("." + labelStyleName);
+
+ if (styleDecl)
+ {
+ labelObj.styleDeclaration = styleDecl;
+ labelObj.regenerateStyleCache(true);
+ }
+ }
+ }
+ */
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ internal function getPreferredLabelWidth():Number
+ {
+ if (!label || label == "")
+ return 0;
+
+ if (isNaN(labelObj.measuredWidth))
+ labelObj.validateSize();
+
+ var labelWidth:Number = labelObj.measuredWidth;
+
+ if (isNaN(labelWidth))
+ return 0;
+
+ return labelWidth;
+ }
+
+ /**
+ * @private
+ */
+ private function calculateLabelWidth():Number
+ {
+ var labelWidth:Number = getStyle("labelWidth");
+
+ // labelWidth of 0 is the same as NaN
+ if (labelWidth == 0)
+ labelWidth = NaN;
+
+ if (isNaN(labelWidth) && parent is Form)
+ labelWidth = Form(parent).calculateLabelWidth();
+
+ if (isNaN(labelWidth))
+ labelWidth = getPreferredLabelWidth();
+
+ return labelWidth;
+ }
+
+ /**
+ * @private
+ */
+ private function calcNumColumns(w:Number):int
+ {
+ var totalWidth:Number = 0;
+ var maxChildWidth:Number = 0;
+ var horizontalGap:Number = getStyle("horizontalGap");
+
+ if (direction != FormItemDirection.HORIZONTAL)
+ return 1;
+
+ var numChildrenWithOwnSpace:Number = numChildren;
+
+ for (var i:int = 0; i < numChildren; i++)
+ {
+ var child:IUIComponent = getLayoutChildAt(i);
+
+ if (!child.includeInLayout)
+ {
+ numChildrenWithOwnSpace--;
+ continue;
+ }
+
+ var childWidth:Number = child.getExplicitOrMeasuredWidth();
+
+ maxChildWidth = Math.max(maxChildWidth, childWidth);
+ totalWidth += childWidth;
+ if (i > 0)
+ totalWidth += horizontalGap;
+ }
+
+ // See if everything can fit in a single row
+ if (isNaN(w) || totalWidth <= w)
+ return numChildrenWithOwnSpace;
+
+ // if the width is enough to contain two children use two columns
+ if (maxChildWidth*2 <= w)
+ return 2;
+
+ // Default is single column
+ return 1;
+ }
+
+ /**
+ * @private
+ */
+ private function displayIndicator(xPos:Number, yPos:Number):void
+ {
+ if (required)
+ {
+ if (!indicatorObj)
+ {
+ var indicatorClass:Class = getStyle("indicatorSkin") as Class;
+ indicatorObj = IFlexDisplayObject(new indicatorClass());
+ strandChildren.addElement(indicatorObj as IChild);
+ }
+
+ indicatorObj.x =
+ xPos + ((getStyle("indicatorGap") - indicatorObj.width) / 2);
+
+ if (labelObj)
+ {
+ indicatorObj.y = yPos +
+ (labelObj.getExplicitOrMeasuredHeight() -
+ indicatorObj.measuredHeight) / 2;
+ }
+ }
+ else
+ {
+ if (indicatorObj)
+ {
+ strandChildren.removeElement(indicatorObj as IChild);
+ indicatorObj = null;
+ }
+ }
+ }
+
+ /**
+ * @private
+ * Returns a numeric value for the align setting.
+ * 0 = left/top, 0.5 = center, 1 = right/bottom
+ */
+ mx_internal function getHorizontalAlignValue():Number
+ {
+ var horizontalAlign:String = getStyle("horizontalAlign");
+
+ if (horizontalAlign == "center")
+ return 0.5;
+
+ else if (horizontalAlign == "right")
+ return 1;
+
+ // default = left
+ return 0;
+ }
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItemDirection.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItemDirection.as
new file mode 100644
index 0000000..6770dcb
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/FormItemDirection.as
@@ -0,0 +1,67 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+/**
+ * The FormItemDirection class defines the constant values
+ * for the <code>direction</code> property of the FormItem class.
+ *
+ * @see mx.containers.FormItem
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public final class FormItemDirection
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Specifies that the children of the FormItem container
+ * are laid out horizontally.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const HORIZONTAL:String = "horizontal";
+
+ /**
+ * Specifies that the children of the FormItem container
+ * are laid out vertically.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const VERTICAL:String = "vertical";
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Grid.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Grid.as
index 2be1526..42aeeef 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Grid.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/Grid.as
@@ -1,828 +1,828 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 mx.containers
-{
-
-import mx.containers.gridClasses.GridColumnInfo;
-import mx.containers.gridClasses.GridRowInfo;
-import mx.core.EdgeMetrics;
-
-//--------------------------------------
-// Styles
-//--------------------------------------
-
-/**
- * Number of pixels between children in the horizontal direction.
- * The default value is 8.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-[Style(name="horizontalGap", type="Number", format="Length", inherit="no")]
-
-/**
- * Number of pixels between children in the vertical direction.
- * The default value is 6.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-[Style(name="verticalGap", type="Number", format="Length", inherit="no")]
-
-//--------------------------------------
-// Excluded APIs
-//--------------------------------------
-
-[Exclude(name="direction", kind="property")]
-
-[Exclude(name="focusIn", kind="event")]
-[Exclude(name="focusOut", kind="event")]
-
-[Exclude(name="focusBlendMode", kind="style")]
-[Exclude(name="focusSkin", kind="style")]
-[Exclude(name="focusThickness", kind="style")]
-
-[Exclude(name="focusInEffect", kind="effect")]
-[Exclude(name="focusOutEffect", kind="effect")]
-
-//[IconFile("Grid.png")]
-
-/**
- * A Grid container lets you arrange children as rows and columns
- * of cells, similar to an HTML table.
- * The Grid container contains one or more rows, and each row can contain
- * one or more cells, or items. You use the following tags to define a Grid control:
- *
- * <ul>
- * <li>The <code><mx:Grid></code> tag defines a Grid container.</li>
- *
- * <li>The <code><mx:GridRow></code> tag defines a grid row,
- * which has one or more cells. The grid row must be a child of the
- * <code><Grid></code> tag.</li>
- *
- * <li>The <code><mx:GridItem></code> tag defines a grid cell,
- * and must be a child of the <code><GridRow></code> tag.
- * The <code><mx:GridItem></code> tag can contain
- * any number of children.</li>
- * </ul>
- *
- * <p>The height of all the cells in a single row is the same,
- * but each row can have a different height.
- * The width of all cells in a single column is the same,
- * but each column can have a different width.
- * You can define a different number of cells
- * for each row or each column of the Grid container.
- * In addition, a cell can span multiple columns
- * or multiple rows of the container.</p>
- *
- * <p>The Grid, GridRow, and GridItem containers have the following default sizing characteristics:</p>
- * <table class="innertable">
- * <tr>
- * <th>Characteristic</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td>Grid height</td>
- * <td>The sum of the default or explicit heights of all rows plus the gaps between rows.</td>
- * </tr>
- * <tr>
- * <td>Grid width</td>
- * <td>The sum of the default or explicit width of all columns plus the gaps between columns.</td>
- * </tr>
- * <tr>
- * <td>Height of each row and each cell</td>
- * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
- * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Width of each column and each cell</td>
- * <td>The default or explicit width of the widest item in the column. If a GridItem container does not have an explicit
- * width, its default width is the default or explicit width of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Gap between rows and columns</td>
- * <td>Determined by the horizontalGap and verticalGap styles of the Grid class. The default value for both
- * gaps is 6 pixels.</td>
- * </tr>
- * <tr>
- * <td>Default padding</td>
- * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
- * </tr>
- * </table>
- *
- * @mxml
- *
- * <p>The <code><mx:Grid></code> tag inherits all of the tag
- * attributes of its superclass, except the <code>Box.direction</code>
- * property, and adds the following tag attributes:</p>
- *
- * <pre>
- * <mx:Grid
- * <strong>Styles</strong>
- * horizontalGap="8"
- * verticalGap="6"
- * >
- * ...
- * <i>These child tags are examples only:</i>
- * <mx:GridRow id="row1">
- * <mx:GridItem
- * rowSpan="1"
- * colSpan="1">
- * <mx:Button label="Button 1"/>
- * </mx:GridItem>
- * ...
- * </mx:GridRow>
- * ...
- * </mx:Grid>
- * </pre>
- *
- * @includeExample examples/GridLayoutExample.mxml
- *
- * @see mx.containers.GridRow
- * @see mx.containers.GridItem
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-public class Grid extends Box
-{
- /* include "../core/Version.as"; */
-
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function Grid()
- {
- super();
- }
-
- //--------------------------------------------------------------------------
- //
- // Variables
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * Minimum, maximum, and preferred width of each column.
- */
- // private var columnWidths:Array /* of GridColumnInfo */;
-
- /**
- * @private
- * Minimum, maximum, and preferred height of each row.
- */
- // private var rowHeights:Array /* of GridRowInfo */;
-
- /**
- * @private
- */
- //private var needToRemeasure:Boolean = true;
-
- //--------------------------------------------------------------------------
- //
- // Overridden methods:UIComponent
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- /* override public function invalidateSize():void
- {
- // When the Grid's size is invalidated, the rowHeights
- // and columnWidths arrays need to be recalculated.
- // Those arrays are usually recalculated in measure(),
- // but set a flag in case measure() isn't called (which
- // will happen if the Grid's width and height are explicit).
- if (!isNaN(explicitWidth) && !isNaN(explicitHeight))
- needToRemeasure = true;
-
- super.invalidateSize();
- } */
-
- /**
- * Calculates the preferred, minimum, and maximum sizes of the Grid.
-
- * <p>You should not call this method directly; it is an advanced
- * method for use in subclassing.
- * The Flex LayoutManger calls the <code>measure()</code> method
- * at the appropriate time.
- * At application startup, the Flex LayoutManager attempts
- * to measure all components from the children to the parents
- * before setting them to their final sizes.</p>
- *
- * <p>To understand how the Grid container calculates its measurements,
- * assume that every GridItem container has its <code>rowSpan</code>
- * property and <code>colSpan</code> property set to 1.
- * The measured width of the first column of the Grid container
- * is equal to the maximum among of the measured widths
- * of all GridItem containers in the first column.
- * Similarly, the measured width of the second column is
- * the maximum of all measured widths among the GridItem containers
- * in the second column, and so on.
- * The <code>measuredWidth</code> of the entire Grid container
- * is the sum of all columns' measured widths, plus the thickness
- * of the border, plus the left and right padding, plus room
- * for the horizontal gap between adjacent grid cells.</p>
- *
- * <p>The <code>measuredHeight</code>, <code>minWidth</code>,
- * <code>minHeight</code>, <code>maxWidth</code>, and
- * <code>maxHeight</code> properties' values are all calculated
- * in a similar manner, by adding together the values of the
- * GridItem containers' <code>measuredHeight</code> properties,
- * <code>minWidth</code> properties, and so on.</p>
- *
- * <p>If a GridItem container's <code>colSpan</code> property is 3,
- * that GridItem container's <code>measuredWidth</code> is divided
- * among 3 columns.
- * If the <code>measuredWidth</code> is divided equally,
- * each of the three columns calculates its measured width
- * as if the GridItem container were only in that column
- * and the GridItem container's <code>measuredWidth</code>
- * were one-third of its actual value.</p>
- *
- * <p>However, the GridItem container's <code>measuredWidth</code>
- * property is not always divided equally among all the columns it spans.
- * If some of the columns have a property with a percentage value
- * of <code>width</code>, the GridItem container's
- * <code>measuredWidth</code> property is divided accordingly,
- * attempting to give each column the requested percentage
- * of the Grid container.</p>
- *
- * <p>All of the values described previously are the
- * <i>measured</i> widths and heights of Grid.
- * The user can override the measured values by explicitly
- * supplying a value for the following properties:</p>
- *
- * <ul>
- * <li><code>minHeight</code></li>
- * <li><code>minWidth</code></li>
- * <li><code>maxHeight</code></li>
- * <li><code>maxWidth</code></li>
- * <li><code>height</code></li>
- * <li><code>width</code></li>
- * </ul>
- *
- * <p>If you override this method, your implementation must call the
- * <code>super.measure()</code> method or set the
- * <code>measuredHeight</code> and <code>measuredWidth</code> properties.
- * You may also optionally set the following properties:</p>
- *
- * <ul>
- * <li><code>measuredMinWidth</code></li>
- * <li><code>measuredMinHeight</code></li>
- * </ul>
- *
- * <p>These properties correspond to the layout properties listed previously
- * and, therefore, are not documented separately.</p>
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- /* override protected function measure():void
- {
- // 1. Determine the number of grid columns,
- // taking into account rowSpan and colSpan
-
- var numGridRows:int = 0;
- var numGridColumns:int = 0;
- var columnOccupiedUntilRow:Array = [];
- var gridRow:GridRow;
- var gridItem:GridItem;
- var i:int;
- var j:int;
- var colIndex:int;
-
- var rowList:Array = []; // GridRows
-
- for (var index:int = 0; index < numChildren; index++)
- {
- gridRow = GridRow(getChildAt(index));
- if (gridRow.includeInLayout)
- {
- rowList.push(gridRow);
- numGridRows++;
- }
- }
-
-
- for (i = 0; i < numGridRows; i++)
- {
- colIndex = 0;
- gridRow = rowList[i];
-
- // Cache the number of children as a property on the gridRow
- gridRow.numGridItems = gridRow.numChildren;
-
- // Tell the grid row what row number it is
- gridRow.rowIndex = i;
- for (j = 0; j < gridRow.numGridItems; j++)
- {
- // If this column is occupied by a cell in the previous row,
- // then push cells in this row to the right.
- if (i > 0)
- {
- var occupied:int = columnOccupiedUntilRow[colIndex];
- while (!isNaN(occupied) && occupied >= i)
- {
- colIndex++;
- occupied = columnOccupiedUntilRow[colIndex];
- }
- }
-
- // Set the position of this GridItem to the next
- // available space.
- gridItem = GridItem(gridRow.getChildAt(j));
- gridItem.colIndex = colIndex;
-
- // If this cell extends to rows beyond this one, remember
- // which columns are occupied.
- if (gridItem.rowSpan > 1)
- {
- var lastRowOccupied:int = i + gridItem.rowSpan - 1;
- for (var k:int = 0; k < gridItem.colSpan; k++)
- {
- columnOccupiedUntilRow[colIndex + k] = lastRowOccupied;
- }
- }
-
- colIndex += gridItem.colSpan;
- }
-
- if (colIndex > numGridColumns)
- numGridColumns = colIndex;
- }
-
- // 2. Create the rowHeights and colWidths arrays.
- // Initially set all heights and widths to zero.
-
- rowHeights = new Array(numGridRows);
- columnWidths = new Array(numGridColumns);
-
- for (i = 0; i < numGridRows; i++)
- {
- rowHeights[i] = new GridRowInfo();
- }
- for (i = 0; i < numGridColumns; i++)
- {
- columnWidths[i] = new GridColumnInfo();
- }
-
- // 3. Visit all the GridItems again.
- // Expand each row and each column so it's large enough
- // to hold its GridItems.
- // We'll deal with rowSpans and colSpans of 1 first,
- // then rowSpans and colSpans of 2, and so on.
-
- var BIG_INT:int = int.MAX_VALUE;
- var curSpan:int;
- var nextSpan:int = 1;
-
- var horizontalGap:Number = getStyle("horizontalGap");
- var verticalGap:Number = getStyle("verticalGap");
-
- do
- {
- curSpan = nextSpan;
- nextSpan = BIG_INT;
-
- for (i = 0; i < numGridRows; i++)
- {
- gridRow = rowList[i];
-
- // Store pointers to the columnWidths and rowHeights arrays
- // on each GridRow object.
- gridRow.columnWidths = columnWidths;
- gridRow.rowHeights = rowHeights;
-
- for (j = 0; j < gridRow.numGridItems; j++)
- {
- gridItem = GridItem(gridRow.getChildAt(j));
- var rowSpan:int = gridItem.rowSpan;
- var colSpan:int = gridItem.colSpan;
-
- // During this iteration of the outermost do-while loop,
- // we're dealing with rows and columns that have a rowSpan
- // or colSpan equal to curSpan. If we encounter a row or
- // column with a larger span, remember its span in nextSpan
- // for the next iteration through the do-while loop.
-
- if (rowSpan == curSpan)
- distributeItemHeight(gridItem, i, verticalGap, rowHeights);
- else if (rowSpan > curSpan && rowSpan < nextSpan)
- nextSpan = rowSpan;
-
- if (colSpan == curSpan)
- {
- distributeItemWidth(gridItem, gridItem.colIndex,
- horizontalGap, columnWidths);
- }
- else if (colSpan > curSpan && colSpan < nextSpan)
- {
- nextSpan = colSpan;
- }
- }
- }
- }
- while (nextSpan < BIG_INT);
-
- // 4. Reconcile min/preferred/max values, so that min <= pref <= max.
- // Also compute sums of all measurements.
-
- var minWidth:Number = 0;
- var minHeight:Number = 0;
- var preferredWidth:Number = 0;
- var preferredHeight:Number = 0;
-
- for (i = 0; i < numGridRows; i++)
- {
- var rowInfo:GridRowInfo = rowHeights[i];
-
- if (rowInfo.min > rowInfo.preferred)
- rowInfo.min = rowInfo.preferred;
- if (rowInfo.max < rowInfo.preferred)
- rowInfo.max = rowInfo.preferred;
-
- minHeight += rowInfo.min;
- preferredHeight += rowInfo.preferred;
- }
-
- for (i = 0; i < numGridColumns; i++)
- {
- var columnInfo:GridColumnInfo = columnWidths[i];
-
- if (columnInfo.min > columnInfo.preferred)
- columnInfo.min = columnInfo.preferred;
- if (columnInfo.max < columnInfo.preferred)
- columnInfo.max = columnInfo.preferred;
-
- minWidth += columnInfo.min;
- preferredWidth += columnInfo.preferred;
- }
-
- // 5. Add horizontal space for the gaps between the grid cells
- // and the margins around them.
-
- // Add space for grid's left and right margins
- var vm:EdgeMetrics = viewMetricsAndPadding;
- var padding:Number = vm.left + vm.right;
- var row:GridRow;
- var rowVm:EdgeMetrics;
- var maxRowPadding:Number = 0;
-
- // Add space for horizontal gaps between grid items.
- if (numGridColumns > 1)
- padding += getStyle("horizontalGap") * (numGridColumns - 1);
-
- // Add space for the gridrow's left and right margins.
- for (i = 0; i < numGridRows; i++)
- {
- row = rowList[i];
- rowVm = row.viewMetricsAndPadding;
- var rowPadding:Number = rowVm.left + rowVm.right;
- if (rowPadding > maxRowPadding)
- maxRowPadding = rowPadding;
- }
- padding += maxRowPadding;
-
- minWidth += padding;
- preferredWidth += padding;
-
- // 6. Add vertical space for the gaps between grid cells
- // and the margins around them.
-
- // Add space for grid's left and right margins.
- padding = vm.top + vm.bottom;
-
- // Add space for vertical gaps between grid items.
- if (numGridRows > 1)
- padding += getStyle("verticalGap") * (numGridRows - 1);
-
- // Add each of the grid rows' margins.
- for (i = 0; i < numGridRows; i++)
- {
- row = rowList[i];
- rowVm = row.viewMetricsAndPadding;
- padding += rowVm.top + rowVm.bottom;
- }
-
- minHeight += padding;
- preferredHeight += padding;
-
- // 7. Now that the Grid is finished measuring itself,
- // update all the measurements of the child GridRows.
-
- for (i = 0; i < numGridRows; i++)
- {
- row = rowList[i];
- row.updateRowMeasurements();
- }
-
- // 8. Up until now, we've calculated all our measurements
- // based on the GridItems.
- // If someone has explicitly set the width (or percentWidth
- // or whatever) of a GridRow, we've been ignoring it.
- // Run the standard Box measurement algorithm, which will
- // take into account hard-coded values on the GridRow objects,
- // and combine the measured values with the ones
- // we've calculated based on GridItems.
-
- super.measure();
-
- measuredMinWidth = Math.max(measuredMinWidth, minWidth);
- measuredMinHeight = Math.max(measuredMinHeight, minHeight);
- measuredWidth = Math.max(measuredWidth, preferredWidth);
- measuredHeight = Math.max(measuredHeight, preferredHeight);
-
- needToRemeasure = false;
- } */
-
- /**
- * Sets the size and position of each child of the Grid.
- *
- * <p>You should not call this method directly; it is an advanced
- * method for use in subclassing.
- * The Flex LayoutManager calls the <code>updateDisplayList</code>
- * method at the appropriate time.
- * At application startup, the Flex LayoutManager calls
- * the <code>updateDisplayList()</code> method on every component,
- * starting with the root and working downward.</p>
- *
- * <p>The Grid container follows the same layout rules
- * as the VBox container.
- * The positions and sizes of the GridRow containers
- * are calculated the same way that a VBox container
- * determines the positions and sizes of its children.
- * Similarly, a GridRow container positions its GridItem containers
- * using a similar layout algorithm of an HBox container.</p>
- *
- * <p>The only difference is that the GridRow containers
- * all coordinate with one another, so they all choose
- * the same positions and sizes for their children
- * (so that the columns of the Grid container align). </p>
- *
- * <p>If you override this method, your implementation should call
- * the <code>super.updateDisplayList()</code> method
- * and call the <code>move()</code> and the <code>setActualSize()</code>
- * methods on each of the children.
- * For the purposes of performing layout, you should get the size
- * of this container from the <code>unscaledWidth</code>
- * and <code>unscaledHeight</code> properties, not the
- * <code>width</code> and <code>height</code> properties.
- * The <code>width</code> and <code>height</code> properties do not
- * take into account the values of the <code>scaleX</code>
- * and <code>scaleY</code> properties for this container.</p>
- *
- * @param unscaledWidth Specifies the width of the component, in pixels,
- * in the component's coordinates, regardless of the value of the
- * <code>scaleX</code> property of the component.
- *
- * @param unscaledHeight Specifies the height of the component, in pixels,
- * in the component's coordinates, regardless of the value of the
- * <code>scaleY</code> property of the component.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- /* override protected function updateDisplayList(unscaledWidth:Number,
- unscaledHeight:Number):void
- {
- // If the measure function wasn't called (because the widths
- // and heights of the Grid are explicitly set), then we need
- // to generate the rowHeights and columnWidths arrays now.
- if (needToRemeasure)
- measure();
-
- // Follow standard VBox rules for laying out the child rows.
- super.updateDisplayList(unscaledWidth, unscaledHeight);
-
- var n:int = 0;
- var i:int;
- var child:GridRow;
-
- var rowList:Array = []; // GridRows
-
- for (var index:int = 0; index < numChildren; index++)
- {
- child = GridRow(getChildAt(index));
- if (child.includeInLayout)
- {
- rowList.push(child);
- n++;
- }
- }
-
- // Copy the row heights, which were calculated by the VBox layout
- // algorithm, into the rowHeights array.
- for (i = 0; i < n; i++)
- {
- child = rowList[i];
-
- rowHeights[i].y = child.y;
- rowHeights[i].height = child.height;
- }
-
- // Now that all the rows have been layed out, lay out the GridItems
- // in those rows, based on the info stored in the colWidths and
- // rowHeights arrays.
- for (i = 0; i < n; i++)
- {
- child = rowList[i];
-
- child.doRowLayout(child.width * child.scaleX,
- child.height * child.scaleY);
- }
- } */
-
- //--------------------------------------------------------------------------
- //
- // Methods
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- /* private function distributeItemHeight(item:GridItem, rowIndex:Number,
- verticalGap:Number,
- rowHeights:Array):void
- {
- var maxHeight:Number = item.maxHeight;
- var preferredHeightToDistribute:Number =
- item.getExplicitOrMeasuredHeight();
- var minHeightToDistribute:Number = item.minHeight;
- var rowSpan:int = item.rowSpan;
- var totalFlex:Number = 0;
- var divideEqually:Boolean = false;
- var i:int;
- var rowInfo:GridRowInfo;
-
- // If the row(s) spanned by this GridItem are already non-empty,
- // subtract the existing sizes of those rows from the item's height.
- for (i = rowIndex; i < rowIndex + rowSpan; i++)
- {
- rowInfo = rowHeights[i];
- preferredHeightToDistribute -= rowInfo.preferred;
- minHeightToDistribute -= rowInfo.min;
- totalFlex += rowInfo.flex;
- }
-
- // Subtract space for gaps between the rows.
- if (rowSpan > 1)
- {
- var gap:Number = verticalGap * (rowSpan - 1);
- preferredHeightToDistribute -= gap;
- minHeightToDistribute -= gap;
- }
-
- // If none of the rows spanned by this item are resizable,
- // then divide space among the rows equally.
- if (totalFlex == 0)
- {
- totalFlex = rowSpan;
- divideEqually = true;
- }
-
- // If we haven't yet distributed the height of the object,
- // divide remaining height among the rows.
- // If some rows are resizable and others are not,
- // allocate space to the resizable ones.
- preferredHeightToDistribute =
- preferredHeightToDistribute > 0 ?
- Math.ceil(preferredHeightToDistribute / totalFlex) :
- 0;
- minHeightToDistribute =
- minHeightToDistribute > 0 ?
- Math.ceil(minHeightToDistribute / totalFlex) :
- 0;
-
- for (i = rowIndex; i < rowIndex + rowSpan; i++)
- {
- rowInfo = rowHeights[i];
- var flex:Number = divideEqually ? 1 : rowInfo.flex;
- rowInfo.preferred += preferredHeightToDistribute * flex;
- rowInfo.min += minHeightToDistribute * flex;
- }
-
- // The GridItem.maxHeight attribute is respected only for rows
- // with a rowSpan of 1.
- if (rowSpan == 1 && maxHeight < rowInfo.max)
- rowInfo.max = maxHeight;
- } */
-
- /**
- * @private
- */
- /* private function distributeItemWidth(item:GridItem, colIndex:int,
- horizontalGap:Number, columnWidths:Array):void
- {
- var maxWidth:Number = item.maxWidth;
- var preferredWidthToDistribute:Number =
- item.getExplicitOrMeasuredWidth();
- var minWidthToDistribute:Number = item.minWidth;
- var colSpan:int = item.colSpan;
- var percentWidth:Number = item.percentWidth;
- var totalFlex:Number = 0;
- var divideEqually:Boolean = false;
- var i:int;
- var columnInfo:GridColumnInfo;
-
- // If the column(s) spanned by this GridItem are already non-empty,
- // subtract the existing sizes of those columns from the item's width.
- for (i = colIndex; i < colIndex + colSpan; i++)
- {
- columnInfo = columnWidths[i];
- preferredWidthToDistribute -= columnInfo.preferred;
- minWidthToDistribute -= columnInfo.min;
- totalFlex += columnInfo.flex;
- }
-
- // Subtract space for gaps between the columns.
- if (colSpan > 1)
- {
- var gap:Number = horizontalGap * (colSpan - 1);
- preferredWidthToDistribute -= gap;
- minWidthToDistribute -= gap;
- }
-
- // If none of the columns spanned by this item are resizable,
- // then divide space among the columns equally.
- if (totalFlex == 0)
- {
- totalFlex = colSpan;
- divideEqually = true;
- }
-
- // If we haven't yet distributed the width of the object,
- // divide remaining width among the columns.
- // If some columns are resizable and others are not,
- // allocate space to the resizable ones.
- preferredWidthToDistribute =
- preferredWidthToDistribute > 0 ?
- Math.ceil(preferredWidthToDistribute / totalFlex) :
- 0;
- minWidthToDistribute =
- minWidthToDistribute > 0 ?
- Math.ceil(minWidthToDistribute / totalFlex) :
- 0;
-
- for (i = colIndex; i < colIndex + colSpan; i++)
- {
- columnInfo = columnWidths[i];
- var flex:Number = divideEqually ? 1 : columnInfo.flex;
- columnInfo.preferred += preferredWidthToDistribute * flex;
- columnInfo.min += minWidthToDistribute * flex;
- if (percentWidth)
- {
- columnInfo.percent = Math.max(columnInfo.percent,
- percentWidth / colSpan);
- }
- }
-
- // The GridItem.maxWidth attribute is respected only for columns
- // with a colSpan of 1.
- if (colSpan == 1 && maxWidth < columnInfo.max)
- columnInfo.max = maxWidth;
- } */
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+import mx.containers.gridClasses.GridColumnInfo;
+import mx.containers.gridClasses.GridRowInfo;
+import mx.core.EdgeMetrics;
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+/**
+ * Number of pixels between children in the horizontal direction.
+ * The default value is 8.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="horizontalGap", type="Number", format="Length", inherit="no")]
+
+/**
+ * Number of pixels between children in the vertical direction.
+ * The default value is 6.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="verticalGap", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//[IconFile("Grid.png")]
+
+/**
+ * A Grid container lets you arrange children as rows and columns
+ * of cells, similar to an HTML table.
+ * The Grid container contains one or more rows, and each row can contain
+ * one or more cells, or items. You use the following tags to define a Grid control:
+ *
+ * <ul>
+ * <li>The <code><mx:Grid></code> tag defines a Grid container.</li>
+ *
+ * <li>The <code><mx:GridRow></code> tag defines a grid row,
+ * which has one or more cells. The grid row must be a child of the
+ * <code><Grid></code> tag.</li>
+ *
+ * <li>The <code><mx:GridItem></code> tag defines a grid cell,
+ * and must be a child of the <code><GridRow></code> tag.
+ * The <code><mx:GridItem></code> tag can contain
+ * any number of children.</li>
+ * </ul>
+ *
+ * <p>The height of all the cells in a single row is the same,
+ * but each row can have a different height.
+ * The width of all cells in a single column is the same,
+ * but each column can have a different width.
+ * You can define a different number of cells
+ * for each row or each column of the Grid container.
+ * In addition, a cell can span multiple columns
+ * or multiple rows of the container.</p>
+ *
+ * <p>The Grid, GridRow, and GridItem containers have the following default sizing characteristics:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Characteristic</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Grid height</td>
+ * <td>The sum of the default or explicit heights of all rows plus the gaps between rows.</td>
+ * </tr>
+ * <tr>
+ * <td>Grid width</td>
+ * <td>The sum of the default or explicit width of all columns plus the gaps between columns.</td>
+ * </tr>
+ * <tr>
+ * <td>Height of each row and each cell</td>
+ * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
+ * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Width of each column and each cell</td>
+ * <td>The default or explicit width of the widest item in the column. If a GridItem container does not have an explicit
+ * width, its default width is the default or explicit width of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Gap between rows and columns</td>
+ * <td>Determined by the horizontalGap and verticalGap styles of the Grid class. The default value for both
+ * gaps is 6 pixels.</td>
+ * </tr>
+ * <tr>
+ * <td>Default padding</td>
+ * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:Grid></code> tag inherits all of the tag
+ * attributes of its superclass, except the <code>Box.direction</code>
+ * property, and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:Grid
+ * <strong>Styles</strong>
+ * horizontalGap="8"
+ * verticalGap="6"
+ * >
+ * ...
+ * <i>These child tags are examples only:</i>
+ * <mx:GridRow id="row1">
+ * <mx:GridItem
+ * rowSpan="1"
+ * colSpan="1">
+ * <mx:Button label="Button 1"/>
+ * </mx:GridItem>
+ * ...
+ * </mx:GridRow>
+ * ...
+ * </mx:Grid>
+ * </pre>
+ *
+ * @includeExample examples/GridLayoutExample.mxml
+ *
+ * @see mx.containers.GridRow
+ * @see mx.containers.GridItem
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class Grid extends Box
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function Grid()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Minimum, maximum, and preferred width of each column.
+ */
+ private var columnWidths:Array /* of GridColumnInfo */;
+
+ /**
+ * @private
+ * Minimum, maximum, and preferred height of each row.
+ */
+ private var rowHeights:Array /* of GridRowInfo */;
+
+ /**
+ * @private
+ */
+ private var needToRemeasure:Boolean = true;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods:UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ override public function invalidateSize():void
+ {
+ // When the Grid's size is invalidated, the rowHeights
+ // and columnWidths arrays need to be recalculated.
+ // Those arrays are usually recalculated in measure(),
+ // but set a flag in case measure() isn't called (which
+ // will happen if the Grid's width and height are explicit).
+ if (!isNaN(explicitWidth) && !isNaN(explicitHeight))
+ needToRemeasure = true;
+
+ super.invalidateSize();
+ }
+
+ /**
+ * Calculates the preferred, minimum, and maximum sizes of the Grid.
+
+ * <p>You should not call this method directly; it is an advanced
+ * method for use in subclassing.
+ * The Flex LayoutManger calls the <code>measure()</code> method
+ * at the appropriate time.
+ * At application startup, the Flex LayoutManager attempts
+ * to measure all components from the children to the parents
+ * before setting them to their final sizes.</p>
+ *
+ * <p>To understand how the Grid container calculates its measurements,
+ * assume that every GridItem container has its <code>rowSpan</code>
+ * property and <code>colSpan</code> property set to 1.
+ * The measured width of the first column of the Grid container
+ * is equal to the maximum among of the measured widths
+ * of all GridItem containers in the first column.
+ * Similarly, the measured width of the second column is
+ * the maximum of all measured widths among the GridItem containers
+ * in the second column, and so on.
+ * The <code>measuredWidth</code> of the entire Grid container
+ * is the sum of all columns' measured widths, plus the thickness
+ * of the border, plus the left and right padding, plus room
+ * for the horizontal gap between adjacent grid cells.</p>
+ *
+ * <p>The <code>measuredHeight</code>, <code>minWidth</code>,
+ * <code>minHeight</code>, <code>maxWidth</code>, and
+ * <code>maxHeight</code> properties' values are all calculated
+ * in a similar manner, by adding together the values of the
+ * GridItem containers' <code>measuredHeight</code> properties,
+ * <code>minWidth</code> properties, and so on.</p>
+ *
+ * <p>If a GridItem container's <code>colSpan</code> property is 3,
+ * that GridItem container's <code>measuredWidth</code> is divided
+ * among 3 columns.
+ * If the <code>measuredWidth</code> is divided equally,
+ * each of the three columns calculates its measured width
+ * as if the GridItem container were only in that column
+ * and the GridItem container's <code>measuredWidth</code>
+ * were one-third of its actual value.</p>
+ *
+ * <p>However, the GridItem container's <code>measuredWidth</code>
+ * property is not always divided equally among all the columns it spans.
+ * If some of the columns have a property with a percentage value
+ * of <code>width</code>, the GridItem container's
+ * <code>measuredWidth</code> property is divided accordingly,
+ * attempting to give each column the requested percentage
+ * of the Grid container.</p>
+ *
+ * <p>All of the values described previously are the
+ * <i>measured</i> widths and heights of Grid.
+ * The user can override the measured values by explicitly
+ * supplying a value for the following properties:</p>
+ *
+ * <ul>
+ * <li><code>minHeight</code></li>
+ * <li><code>minWidth</code></li>
+ * <li><code>maxHeight</code></li>
+ * <li><code>maxWidth</code></li>
+ * <li><code>height</code></li>
+ * <li><code>width</code></li>
+ * </ul>
+ *
+ * <p>If you override this method, your implementation must call the
+ * <code>super.measure()</code> method or set the
+ * <code>measuredHeight</code> and <code>measuredWidth</code> properties.
+ * You may also optionally set the following properties:</p>
+ *
+ * <ul>
+ * <li><code>measuredMinWidth</code></li>
+ * <li><code>measuredMinHeight</code></li>
+ * </ul>
+ *
+ * <p>These properties correspond to the layout properties listed previously
+ * and, therefore, are not documented separately.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function measure():void
+ {
+ // 1. Determine the number of grid columns,
+ // taking into account rowSpan and colSpan
+
+ var numGridRows:int = 0;
+ var numGridColumns:int = 0;
+ var columnOccupiedUntilRow:Array = [];
+ var gridRow:GridRow;
+ var gridItem:GridItem;
+ var i:int;
+ var j:int;
+ var colIndex:int;
+
+ var rowList:Array = []; // GridRows
+
+ for (var index:int = 0; index < numChildren; index++)
+ {
+ gridRow = GridRow(getChildAt(index));
+ if (gridRow.includeInLayout)
+ {
+ rowList.push(gridRow);
+ numGridRows++;
+ }
+ }
+
+
+ for (i = 0; i < numGridRows; i++)
+ {
+ colIndex = 0;
+ gridRow = rowList[i];
+
+ // Cache the number of children as a property on the gridRow
+ gridRow.numGridItems = gridRow.numChildren;
+
+ // Tell the grid row what row number it is
+ gridRow.rowIndex = i;
+ for (j = 0; j < gridRow.numGridItems; j++)
+ {
+ // If this column is occupied by a cell in the previous row,
+ // then push cells in this row to the right.
+ if (i > 0)
+ {
+ var occupied:int = columnOccupiedUntilRow[colIndex];
+ while (!isNaN(occupied) && occupied >= i)
+ {
+ colIndex++;
+ occupied = columnOccupiedUntilRow[colIndex];
+ }
+ }
+
+ // Set the position of this GridItem to the next
+ // available space.
+ gridItem = GridItem(gridRow.getChildAt(j));
+ gridItem.colIndex = colIndex;
+
+ // If this cell extends to rows beyond this one, remember
+ // which columns are occupied.
+ if (gridItem.rowSpan > 1)
+ {
+ var lastRowOccupied:int = i + gridItem.rowSpan - 1;
+ for (var k:int = 0; k < gridItem.colSpan; k++)
+ {
+ columnOccupiedUntilRow[colIndex + k] = lastRowOccupied;
+ }
+ }
+
+ colIndex += gridItem.colSpan;
+ }
+
+ if (colIndex > numGridColumns)
+ numGridColumns = colIndex;
+ }
+
+ // 2. Create the rowHeights and colWidths arrays.
+ // Initially set all heights and widths to zero.
+
+ rowHeights = new Array(numGridRows);
+ columnWidths = new Array(numGridColumns);
+
+ for (i = 0; i < numGridRows; i++)
+ {
+ rowHeights[i] = new GridRowInfo();
+ }
+ for (i = 0; i < numGridColumns; i++)
+ {
+ columnWidths[i] = new GridColumnInfo();
+ }
+
+ // 3. Visit all the GridItems again.
+ // Expand each row and each column so it's large enough
+ // to hold its GridItems.
+ // We'll deal with rowSpans and colSpans of 1 first,
+ // then rowSpans and colSpans of 2, and so on.
+
+ var BIG_INT:int = int.MAX_VALUE;
+ var curSpan:int;
+ var nextSpan:int = 1;
+
+ var horizontalGap:Number = getStyle("horizontalGap");
+ var verticalGap:Number = getStyle("verticalGap");
+
+ do
+ {
+ curSpan = nextSpan;
+ nextSpan = BIG_INT;
+
+ for (i = 0; i < numGridRows; i++)
+ {
+ gridRow = rowList[i];
+
+ // Store pointers to the columnWidths and rowHeights arrays
+ // on each GridRow object.
+ gridRow.columnWidths = columnWidths;
+ gridRow.rowHeights = rowHeights;
+
+ for (j = 0; j < gridRow.numGridItems; j++)
+ {
+ gridItem = GridItem(gridRow.getChildAt(j));
+ var rowSpan:int = gridItem.rowSpan;
+ var colSpan:int = gridItem.colSpan;
+
+ // During this iteration of the outermost do-while loop,
+ // we're dealing with rows and columns that have a rowSpan
+ // or colSpan equal to curSpan. If we encounter a row or
+ // column with a larger span, remember its span in nextSpan
+ // for the next iteration through the do-while loop.
+
+ if (rowSpan == curSpan)
+ distributeItemHeight(gridItem, i, verticalGap, rowHeights);
+ else if (rowSpan > curSpan && rowSpan < nextSpan)
+ nextSpan = rowSpan;
+
+ if (colSpan == curSpan)
+ {
+ distributeItemWidth(gridItem, gridItem.colIndex,
+ horizontalGap, columnWidths);
+ }
+ else if (colSpan > curSpan && colSpan < nextSpan)
+ {
+ nextSpan = colSpan;
+ }
+ }
+ }
+ }
+ while (nextSpan < BIG_INT);
+
+ // 4. Reconcile min/preferred/max values, so that min <= pref <= max.
+ // Also compute sums of all measurements.
+
+ var minWidth:Number = 0;
+ var minHeight:Number = 0;
+ var preferredWidth:Number = 0;
+ var preferredHeight:Number = 0;
+
+ for (i = 0; i < numGridRows; i++)
+ {
+ var rowInfo:GridRowInfo = rowHeights[i];
+
+ if (rowInfo.min > rowInfo.preferred)
+ rowInfo.min = rowInfo.preferred;
+ if (rowInfo.max < rowInfo.preferred)
+ rowInfo.max = rowInfo.preferred;
+
+ minHeight += rowInfo.min;
+ preferredHeight += rowInfo.preferred;
+ }
+
+ for (i = 0; i < numGridColumns; i++)
+ {
+ var columnInfo:GridColumnInfo = columnWidths[i];
+
+ if (columnInfo.min > columnInfo.preferred)
+ columnInfo.min = columnInfo.preferred;
+ if (columnInfo.max < columnInfo.preferred)
+ columnInfo.max = columnInfo.preferred;
+
+ minWidth += columnInfo.min;
+ preferredWidth += columnInfo.preferred;
+ }
+
+ // 5. Add horizontal space for the gaps between the grid cells
+ // and the margins around them.
+
+ // Add space for grid's left and right margins
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+ var padding:Number = vm.left + vm.right;
+ var row:GridRow;
+ var rowVm:EdgeMetrics;
+ var maxRowPadding:Number = 0;
+
+ // Add space for horizontal gaps between grid items.
+ if (numGridColumns > 1)
+ padding += getStyle("horizontalGap") * (numGridColumns - 1);
+
+ // Add space for the gridrow's left and right margins.
+ for (i = 0; i < numGridRows; i++)
+ {
+ row = rowList[i];
+ rowVm = row.viewMetricsAndPadding;
+ var rowPadding:Number = rowVm.left + rowVm.right;
+ if (rowPadding > maxRowPadding)
+ maxRowPadding = rowPadding;
+ }
+ padding += maxRowPadding;
+
+ minWidth += padding;
+ preferredWidth += padding;
+
+ // 6. Add vertical space for the gaps between grid cells
+ // and the margins around them.
+
+ // Add space for grid's left and right margins.
+ padding = vm.top + vm.bottom;
+
+ // Add space for vertical gaps between grid items.
+ if (numGridRows > 1)
+ padding += getStyle("verticalGap") * (numGridRows - 1);
+
+ // Add each of the grid rows' margins.
+ for (i = 0; i < numGridRows; i++)
+ {
+ row = rowList[i];
+ rowVm = row.viewMetricsAndPadding;
+ padding += rowVm.top + rowVm.bottom;
+ }
+
+ minHeight += padding;
+ preferredHeight += padding;
+
+ // 7. Now that the Grid is finished measuring itself,
+ // update all the measurements of the child GridRows.
+
+ for (i = 0; i < numGridRows; i++)
+ {
+ row = rowList[i];
+ row.updateRowMeasurements();
+ }
+
+ // 8. Up until now, we've calculated all our measurements
+ // based on the GridItems.
+ // If someone has explicitly set the width (or percentWidth
+ // or whatever) of a GridRow, we've been ignoring it.
+ // Run the standard Box measurement algorithm, which will
+ // take into account hard-coded values on the GridRow objects,
+ // and combine the measured values with the ones
+ // we've calculated based on GridItems.
+
+ super.measure();
+
+ measuredMinWidth = Math.max(measuredMinWidth, minWidth);
+ measuredMinHeight = Math.max(measuredMinHeight, minHeight);
+ measuredWidth = Math.max(measuredWidth, preferredWidth);
+ measuredHeight = Math.max(measuredHeight, preferredHeight);
+
+ needToRemeasure = false;
+ }
+
+ /**
+ * Sets the size and position of each child of the Grid.
+ *
+ * <p>You should not call this method directly; it is an advanced
+ * method for use in subclassing.
+ * The Flex LayoutManager calls the <code>updateDisplayList</code>
+ * method at the appropriate time.
+ * At application startup, the Flex LayoutManager calls
+ * the <code>updateDisplayList()</code> method on every component,
+ * starting with the root and working downward.</p>
+ *
+ * <p>The Grid container follows the same layout rules
+ * as the VBox container.
+ * The positions and sizes of the GridRow containers
+ * are calculated the same way that a VBox container
+ * determines the positions and sizes of its children.
+ * Similarly, a GridRow container positions its GridItem containers
+ * using a similar layout algorithm of an HBox container.</p>
+ *
+ * <p>The only difference is that the GridRow containers
+ * all coordinate with one another, so they all choose
+ * the same positions and sizes for their children
+ * (so that the columns of the Grid container align). </p>
+ *
+ * <p>If you override this method, your implementation should call
+ * the <code>super.updateDisplayList()</code> method
+ * and call the <code>move()</code> and the <code>setActualSize()</code>
+ * methods on each of the children.
+ * For the purposes of performing layout, you should get the size
+ * of this container from the <code>unscaledWidth</code>
+ * and <code>unscaledHeight</code> properties, not the
+ * <code>width</code> and <code>height</code> properties.
+ * The <code>width</code> and <code>height</code> properties do not
+ * take into account the values of the <code>scaleX</code>
+ * and <code>scaleY</code> properties for this container.</p>
+ *
+ * @param unscaledWidth Specifies the width of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleX</code> property of the component.
+ *
+ * @param unscaledHeight Specifies the height of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleY</code> property of the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ // If the measure function wasn't called (because the widths
+ // and heights of the Grid are explicitly set), then we need
+ // to generate the rowHeights and columnWidths arrays now.
+ if (needToRemeasure)
+ measure();
+
+ // Follow standard VBox rules for laying out the child rows.
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ var n:int = 0;
+ var i:int;
+ var child:GridRow;
+
+ var rowList:Array = []; // GridRows
+
+ for (var index:int = 0; index < numChildren; index++)
+ {
+ child = GridRow(getChildAt(index));
+ if (child.includeInLayout)
+ {
+ rowList.push(child);
+ n++;
+ }
+ }
+
+ // Copy the row heights, which were calculated by the VBox layout
+ // algorithm, into the rowHeights array.
+ for (i = 0; i < n; i++)
+ {
+ child = rowList[i];
+
+ rowHeights[i].y = child.y;
+ rowHeights[i].height = child.height;
+ }
+
+ // Now that all the rows have been layed out, lay out the GridItems
+ // in those rows, based on the info stored in the colWidths and
+ // rowHeights arrays.
+ for (i = 0; i < n; i++)
+ {
+ child = rowList[i];
+
+ child.doRowLayout(child.width * child.scaleX,
+ child.height * child.scaleY);
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private function distributeItemHeight(item:GridItem, rowIndex:Number,
+ verticalGap:Number,
+ rowHeights:Array):void
+ {
+ var maxHeight:Number = item.maxHeight;
+ var preferredHeightToDistribute:Number =
+ item.getExplicitOrMeasuredHeight();
+ var minHeightToDistribute:Number = item.minHeight;
+ var rowSpan:int = item.rowSpan;
+ var totalFlex:Number = 0;
+ var divideEqually:Boolean = false;
+ var i:int;
+ var rowInfo:GridRowInfo;
+
+ // If the row(s) spanned by this GridItem are already non-empty,
+ // subtract the existing sizes of those rows from the item's height.
+ for (i = rowIndex; i < rowIndex + rowSpan; i++)
+ {
+ rowInfo = rowHeights[i];
+ preferredHeightToDistribute -= rowInfo.preferred;
+ minHeightToDistribute -= rowInfo.min;
+ totalFlex += rowInfo.flex;
+ }
+
+ // Subtract space for gaps between the rows.
+ if (rowSpan > 1)
+ {
+ var gap:Number = verticalGap * (rowSpan - 1);
+ preferredHeightToDistribute -= gap;
+ minHeightToDistribute -= gap;
+ }
+
+ // If none of the rows spanned by this item are resizable,
+ // then divide space among the rows equally.
+ if (totalFlex == 0)
+ {
+ totalFlex = rowSpan;
+ divideEqually = true;
+ }
+
+ // If we haven't yet distributed the height of the object,
+ // divide remaining height among the rows.
+ // If some rows are resizable and others are not,
+ // allocate space to the resizable ones.
+ preferredHeightToDistribute =
+ preferredHeightToDistribute > 0 ?
+ Math.ceil(preferredHeightToDistribute / totalFlex) :
+ 0;
+ minHeightToDistribute =
+ minHeightToDistribute > 0 ?
+ Math.ceil(minHeightToDistribute / totalFlex) :
+ 0;
+
+ for (i = rowIndex; i < rowIndex + rowSpan; i++)
+ {
+ rowInfo = rowHeights[i];
+ var flex:Number = divideEqually ? 1 : rowInfo.flex;
+ rowInfo.preferred += preferredHeightToDistribute * flex;
+ rowInfo.min += minHeightToDistribute * flex;
+ }
+
+ // The GridItem.maxHeight attribute is respected only for rows
+ // with a rowSpan of 1.
+ if (rowSpan == 1 && maxHeight < rowInfo.max)
+ rowInfo.max = maxHeight;
+ }
+
+ /**
+ * @private
+ */
+ private function distributeItemWidth(item:GridItem, colIndex:int,
+ horizontalGap:Number, columnWidths:Array):void
+ {
+ var maxWidth:Number = item.maxWidth;
+ var preferredWidthToDistribute:Number =
+ item.getExplicitOrMeasuredWidth();
+ var minWidthToDistribute:Number = item.minWidth;
+ var colSpan:int = item.colSpan;
+ var percentWidth:Number = item.percentWidth;
+ var totalFlex:Number = 0;
+ var divideEqually:Boolean = false;
+ var i:int;
+ var columnInfo:GridColumnInfo;
+
+ // If the column(s) spanned by this GridItem are already non-empty,
+ // subtract the existing sizes of those columns from the item's width.
+ for (i = colIndex; i < colIndex + colSpan; i++)
+ {
+ columnInfo = columnWidths[i];
+ preferredWidthToDistribute -= columnInfo.preferred;
+ minWidthToDistribute -= columnInfo.min;
+ totalFlex += columnInfo.flex;
+ }
+
+ // Subtract space for gaps between the columns.
+ if (colSpan > 1)
+ {
+ var gap:Number = horizontalGap * (colSpan - 1);
+ preferredWidthToDistribute -= gap;
+ minWidthToDistribute -= gap;
+ }
+
+ // If none of the columns spanned by this item are resizable,
+ // then divide space among the columns equally.
+ if (totalFlex == 0)
+ {
+ totalFlex = colSpan;
+ divideEqually = true;
+ }
+
+ // If we haven't yet distributed the width of the object,
+ // divide remaining width among the columns.
+ // If some columns are resizable and others are not,
+ // allocate space to the resizable ones.
+ preferredWidthToDistribute =
+ preferredWidthToDistribute > 0 ?
+ Math.ceil(preferredWidthToDistribute / totalFlex) :
+ 0;
+ minWidthToDistribute =
+ minWidthToDistribute > 0 ?
+ Math.ceil(minWidthToDistribute / totalFlex) :
+ 0;
+
+ for (i = colIndex; i < colIndex + colSpan; i++)
+ {
+ columnInfo = columnWidths[i];
+ var flex:Number = divideEqually ? 1 : columnInfo.flex;
+ columnInfo.preferred += preferredWidthToDistribute * flex;
+ columnInfo.min += minWidthToDistribute * flex;
+ if (percentWidth)
+ {
+ columnInfo.percent = Math.max(columnInfo.percent,
+ percentWidth / colSpan);
+ }
+ }
+
+ // The GridItem.maxWidth attribute is respected only for columns
+ // with a colSpan of 1.
+ if (colSpan == 1 && maxWidth < columnInfo.max)
+ columnInfo.max = maxWidth;
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridItem.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridItem.as
index f0b8d87..ee4e753 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridItem.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridItem.as
@@ -1,236 +1,235 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 mx.containers
-{
-
-//--------------------------------------
-// Excluded APIs
-//--------------------------------------
-
-[Exclude(name="direction", kind="property")]
-[Exclude(name="focusEnabled", kind="property")]
-[Exclude(name="focusManager", kind="property")]
-[Exclude(name="focusPane", kind="property")]
-[Exclude(name="mouseFocusEnabled", kind="property")]
-
-[Exclude(name="adjustFocusRect", kind="method")]
-[Exclude(name="getFocus", kind="method")]
-[Exclude(name="isOurFocus", kind="method")]
-[Exclude(name="setFocus", kind="method")]
-
-[Exclude(name="focusIn", kind="event")]
-[Exclude(name="focusOut", kind="event")]
-[Exclude(name="move", kind="event")]
-
-[Exclude(name="focusBlendMode", kind="style")]
-[Exclude(name="focusSkin", kind="style")]
-[Exclude(name="focusThickness", kind="style")]
-[Exclude(name="horizontalGap", kind="style")]
-[Exclude(name="verticalGap", kind="style")]
-
-[Exclude(name="focusInEffect", kind="effect")]
-[Exclude(name="focusOutEffect", kind="effect")]
-[Exclude(name="moveEffect", kind="effect")]
-
-/**
- * The GridItem container defines a grid cell in GridRow container.
- * (The GridRow container, in turn, defines a row in a Grid container.)
- * The GridItem container can contain any number of children,
- * which are laid out as in an HBox container.
- * If you do not want HBox layout, create a container, such as a VBox
- * container, as a child of the GridItem control and put other
- * components in this child container.
- *
- * <p>GridItem containers have the following default sizing characteristics:</p>
- * <table class="innertable">
- * <tr>
- * <th>Characteristic</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td>Height of each row and each cell</td>
- * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
- * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Width of each column and each cell</td>
- * <td>The default or explicit width of the widest item in the column. If a GridItem container doed not have an explicit
- * width, its default width is the default or explicit width of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Gap between rows and columns</td>
- * <td>Determined by the horizontalGap and verticalGap properties of the Grid class. The default value for both
- * gaps is 6 pixels.</td>
- * </tr>
- * <tr>
- * <td>Default padding</td>
- * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
- * </tr>
- * </table>
- *
- * @mxml
- *
- * <p>The <code><mx:GridItem></code> tag must be a child of the
- * <code><GridRow></code> tag, which defines a grid row.
- * The <code><mx:GridItem></code> container inherits the
- * tag attributes of its superclass, and adds the following tag attributes.</p>
- *
- * <pre>
- * <mx:Grid>
- * <mx:GridRow>
- * <mx:GridItem
- * rowSpan="1"
- * colSpan="1">
- * <i>child components</i>
- * </mx:GridItem>
- * ...
- * </mx:GridRow>
- * ...
- * </mx:Grid>
- * </pre>
- *
- * @see mx.containers.Grid
- * @see mx.containers.GridRow
- *
- * @includeExample examples/GridLayoutExample.mxml
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- * @royalesuppresspublicvarwarning
- */
-public class GridItem extends HBox
-{
- // include "../core/Version.as";
-
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function GridItem()
- {
- super();
- }
-
- //--------------------------------------------------------------------------
- //
- // Properties
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- internal var colIndex:int = 0;
-
- //--------------------------------------------------------------------------
- //
- // Public Properties
- //
- //--------------------------------------------------------------------------
-
- //----------------------------------
- // colSpan
- //----------------------------------
-
- /**
- * @private
- * Storage for the colSpan property.
- */
- private var _colSpan:int = 1;
-
- [Inspectable(category="General", defaultValue="1")]
-
- /**
- * Number of columns of the Grid container spanned by the cell.
- *
- * @default 1
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function get colSpan():int
- {
- return _colSpan;
- }
-
- /**
- * @private
- */
- public function set colSpan(value:int):void
- {
- _colSpan = value;
-
- invalidateSize();
- }
-
- //----------------------------------
- // rowSpan
- //----------------------------------
-
- /**
- * @private
- * Storage for the rowSpan property.
- */
- private var _rowSpan:int = 1;
-
- [Inspectable(category="General", defaultValue="1")]
-
- /**
- * Number of rows of the Grid container spanned by the cell.
- * You cannot extend a cell past the number of rows in the Grid.
- *
- * @default 1
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function get rowSpan():int
- {
- return _rowSpan;
- }
-
- /**
- * @private
- */
- public function set rowSpan(value:int):void
- {
- _rowSpan = value;
-
- invalidateSize();
- }
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="direction", kind="property")]
+[Exclude(name="focusEnabled", kind="property")]
+[Exclude(name="focusManager", kind="property")]
+[Exclude(name="focusPane", kind="property")]
+[Exclude(name="mouseFocusEnabled", kind="property")]
+
+[Exclude(name="adjustFocusRect", kind="method")]
+[Exclude(name="getFocus", kind="method")]
+[Exclude(name="isOurFocus", kind="method")]
+[Exclude(name="setFocus", kind="method")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+[Exclude(name="move", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="horizontalGap", kind="style")]
+[Exclude(name="verticalGap", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+[Exclude(name="moveEffect", kind="effect")]
+
+/**
+ * The GridItem container defines a grid cell in GridRow container.
+ * (The GridRow container, in turn, defines a row in a Grid container.)
+ * The GridItem container can contain any number of children,
+ * which are laid out as in an HBox container.
+ * If you do not want HBox layout, create a container, such as a VBox
+ * container, as a child of the GridItem control and put other
+ * components in this child container.
+ *
+ * <p>GridItem containers have the following default sizing characteristics:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Characteristic</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Height of each row and each cell</td>
+ * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
+ * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Width of each column and each cell</td>
+ * <td>The default or explicit width of the widest item in the column. If a GridItem container doed not have an explicit
+ * width, its default width is the default or explicit width of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Gap between rows and columns</td>
+ * <td>Determined by the horizontalGap and verticalGap properties of the Grid class. The default value for both
+ * gaps is 6 pixels.</td>
+ * </tr>
+ * <tr>
+ * <td>Default padding</td>
+ * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:GridItem></code> tag must be a child of the
+ * <code><GridRow></code> tag, which defines a grid row.
+ * The <code><mx:GridItem></code> container inherits the
+ * tag attributes of its superclass, and adds the following tag attributes.</p>
+ *
+ * <pre>
+ * <mx:Grid>
+ * <mx:GridRow>
+ * <mx:GridItem
+ * rowSpan="1"
+ * colSpan="1">
+ * <i>child components</i>
+ * </mx:GridItem>
+ * ...
+ * </mx:GridRow>
+ * ...
+ * </mx:Grid>
+ * </pre>
+ *
+ * @see mx.containers.Grid
+ * @see mx.containers.GridRow
+ *
+ * @includeExample examples/GridLayoutExample.mxml
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class GridItem extends HBox
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function GridItem()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ internal var colIndex:int = 0;
+
+ //--------------------------------------------------------------------------
+ //
+ // Public Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // colSpan
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the colSpan property.
+ */
+ private var _colSpan:int = 1;
+
+ [Inspectable(category="General", defaultValue="1")]
+
+ /**
+ * Number of columns of the Grid container spanned by the cell.
+ *
+ * @default 1
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get colSpan():int
+ {
+ return _colSpan;
+ }
+
+ /**
+ * @private
+ */
+ public function set colSpan(value:int):void
+ {
+ _colSpan = value;
+
+ invalidateSize();
+ }
+
+ //----------------------------------
+ // rowSpan
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the rowSpan property.
+ */
+ private var _rowSpan:int = 1;
+
+ [Inspectable(category="General", defaultValue="1")]
+
+ /**
+ * Number of rows of the Grid container spanned by the cell.
+ * You cannot extend a cell past the number of rows in the Grid.
+ *
+ * @default 1
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get rowSpan():int
+ {
+ return _rowSpan;
+ }
+
+ /**
+ * @private
+ */
+ public function set rowSpan(value:int):void
+ {
+ _rowSpan = value;
+
+ invalidateSize();
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridRow.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridRow.as
index 844c391..96e2354 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridRow.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/GridRow.as
@@ -1,628 +1,636 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 mx.containers
-{
-
-/* import flash.display.DisplayObject;
- */
- import mx.containers.gridClasses.GridColumnInfo;
-import mx.containers.gridClasses.GridRowInfo;
-import mx.containers.utilityClasses.Flex;
-import mx.core.EdgeMetrics;
-import mx.core.ScrollPolicy;
-import mx.core.mx_internal;
-
-use namespace mx_internal;
-
-//--------------------------------------
-// Styles
-//--------------------------------------
-
-/**
- * Horizontal alignment of children in the container.
- * Possible values are <code>"left"</code>, <code>"center"</code>,
- * and <code>"right"</code>.
- * The default value is <code>"left"</code>.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
-
-/**
- * Vertical alignment of children in the container.
- * Possible values are <code>"top"</code>, <code>"middle"</code>,
- * and <code>"bottom"</code>.
- * The default value is <code>"top"</code>.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-[Style(name="verticalAlign", type="String", enumeration="bottom,middle,top", inherit="no")]
-
-//--------------------------------------
-// Excluded APIs
-//--------------------------------------
-
-[Exclude(name="clipContent", kind="property")]
-[Exclude(name="direction", kind="property")]
-[Exclude(name="focusEnabled", kind="property")]
-[Exclude(name="focusManager", kind="property")]
-[Exclude(name="focusPane", kind="property")]
-[Exclude(name="horizontalLineScrollSize", kind="property")]
-[Exclude(name="horizontalPageScrollSize", kind="property")]
-[Exclude(name="horizontalScrollBar", kind="property")]
-[Exclude(name="horizontalScrollPolicy", kind="property")]
-[Exclude(name="horizontalScrollPosition", kind="property")]
-[Exclude(name="maxHorizontalScrollPosition", kind="property")]
-[Exclude(name="maxVerticalScrollPosition", kind="property")]
-[Exclude(name="mouseFocusEnabled", kind="property")]
-[Exclude(name="verticalLineScrollSize", kind="property")]
-[Exclude(name="verticalPageScrollSize", kind="property")]
-[Exclude(name="verticalScrollBar", kind="property")]
-[Exclude(name="verticalScrollPolicy", kind="property")]
-[Exclude(name="verticalScrollPosition", kind="property")]
-
-[Exclude(name="adjustFocusRect", kind="method")]
-[Exclude(name="getFocus", kind="method")]
-[Exclude(name="isOurFocus", kind="method")]
-[Exclude(name="setFocus", kind="method")]
-
-[Exclude(name="focusIn", kind="event")]
-[Exclude(name="focusOut", kind="event")]
-[Exclude(name="move", kind="event")]
-[Exclude(name="scroll", kind="event")]
-
-[Exclude(name="focusBlendMode", kind="style")]
-[Exclude(name="focusSkin", kind="style")]
-[Exclude(name="focusThickness", kind="style")]
-[Exclude(name="horizontalGap", kind="style")]
-[Exclude(name="horizontalScrollBarStyleName", kind="style")]
-[Exclude(name="verticalGap", kind="style")]
-[Exclude(name="verticalScrollBarStyleName", kind="style")]
-
-[Exclude(name="focusInEffect", kind="effect")]
-[Exclude(name="focusOutEffect", kind="effect")]
-[Exclude(name="moveEffect", kind="effect")]
-
-/**
- * The GridRow container defines a row in a Grid container, and contains
- * GridCell containers.
- *
- * <p>GridRow containers have the following default sizing characteristics:</p>
- * <table class="innertable">
- * <tr>
- * <th>Characteristic</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td>Height of each row and each cell</td>
- * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
- * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Width of each column and each cell</td>
- * <td>The default or explicit width of the widest item in the column. If a GridItem container does not have an explicit
- * width, its default width is the default or explicit width of the child in the cell.</td>
- * </tr>
- * <tr>
- * <td>Gap between rows and columns</td>
- * <td>Determined by the horizontalGap and verticalGap properties of the Grid class. The default value for both
- * gaps is 6 pixels.</td>
- * </tr>
- * <tr>
- * <td>Default padding</td>
- * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
- * </tr>
- * </table>
- *
- * @mxml
- *
- * <p>The <code><mx:GridRow></code> must be a child of the
- * <code><mx:Grid></code> tag, and has one or more child
- * <code><mx:GridItem></code> tags that define the grid cells.</p>
- *
- * <p>The <code><mx:GridRow></code> container inherits the
- * tag attributes of its superclass, and adds the following tag attributes:</p>
- *
- * <pre>
- * <mx:Grid>
- * <mx:GridRow
- * <strong>Styles</strong>
- * horizontalAlign="left|center|right"
- * verticalAlign="top|middle|bottom"
- * >
- * <mx:GridItem
- * <i>child components</i>
- * </mx:GridItem>
- * ...
- * </mx:GridRow>
- * ...
- * </mx:Grid>
- * </pre>
- *
- * @see mx.containers.Grid
- * @see mx.containers.GridItem
- *
- * @includeExample examples/GridLayoutExample.mxml
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
-public class GridRow extends HBox
-{
- //include "../core/Version.as";
-
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function GridRow()
- {
- super();
-
- // Set this to false so Container doesn't clip.
- // super.clipContent = false;
- }
-
- //--------------------------------------------------------------------------
- //
- // Variables
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * Width of columns in the row.
- */
- // internal var columnWidths:Array /* of GridColumnInfo */;
-
- /**
- * @private
- * Height of rows.
- */
- // internal var rowHeights:Array /* of GridRowInfo */;
-
- /**
- * @private
- * Index of this row.
- */
- // internal var rowIndex:int = 0;
-
- /**
- * @private
- */
- // internal var numGridItems:int;
-
- //--------------------------------------------------------------------------
- //
- // Overridden properties
- //
- //--------------------------------------------------------------------------
-
- //----------------------------------
- // clipContent
- //----------------------------------
-
- // [Inspectable(environment="none")]
-
- /**
- * @private
- */
- /* override public function get clipContent():Boolean
- {
- return false;
- } */
-
- /**
- * @private
- * Don't allow user to set clipContent.
- * The Grid will clip all GridItems, if necessary.
- * We don't want GridRows to do clipping, because GridItems with
- * rowSpan > 1 will extend outside the borders of the GridRow.
- */
- /* override public function set clipContent(value:Boolean):void
- {
- } */
-
- //----------------------------------
- // horizontalScrollPolicy
- //----------------------------------
-
- // [Inspectable(environment="none")]
-
- /**
- * @private
- */
- /* override public function get horizontalScrollPolicy():String
- {
- return ScrollPolicy.OFF;
- }
- */
- /**
- * @private
- * Don't allow user to set horizontalScrollPolicy.
- */
- /* override public function set horizontalScrollPolicy(value:String):void
- {
- } */
-
- //----------------------------------
- // verticalScrollPolicy
- //----------------------------------
-
- //[Inspectable(environment="none")]
-
- /**
- * @private
- */
- /* override public function get verticalScrollPolicy():String
- {
- return ScrollPolicy.OFF;
- } */
-
- /**
- * @private
- * Don't allow user to set verticalScrollPolicy.
- */
- /* override public function set verticalScrollPolicy(value:String):void
- {
- } */
-
- //--------------------------------------------------------------------------
- //
- // Overridden methods: DisplayObjectContainer
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * If the child index of a row item is changed, we need to recompute
- * the column size and arrange children in proper order.
- * Hence invalidate the size and layout of the Grid.
- */
- /* override public function setChildIndex(child:DisplayObject,
- newIndex:int):void
- {
- super.setChildIndex(child, newIndex);
-
- Grid(parent).invalidateSize();
- Grid(parent).invalidateDisplayList();
- } */
-
- //--------------------------------------------------------------------------
- //
- // Overridden methods: UIComponent
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * If something causes a GridRow's measurements to change,
- * this function is called.
- * Ordinarily, this function registers the object with the
- * layout manager, so that measure is called later.
- * For GridRows, we can't do measurement until after the parent Grid
- * has done its measurement.
- * Therefore, we register the parent Grid with the layout manager.
- * The Grid.measure() contains code that calls measure()
- * on each child GridRow.
- */
- /* override public function invalidateSize():void
- {
- super.invalidateSize();
- if (parent)
- Grid(parent).invalidateSize();
- } */
-
- /**
- * @private
- */
- /* override public function invalidateDisplayList():void
- {
- super.invalidateDisplayList();
- if (parent)
- Grid(parent).invalidateDisplayList();
- } */
-
- /**
- * Sets the size and position of each child of the GridRow container.
- * For more information about the Grid layout algorithm,
- * see the <a href="Grid.html#updateDisplayList()">Grid.updateDisplayList()</a>
- * method.
- *
- * <p>You should not call this method directly.
- * The Flex LayoutManager calls it at the appropriate time.
- * At application startup, the Flex LayoutManager calls the
- * <code>updateDisplayList()</code> method on every component,
- * starting with the root and working downward.</p>
- *
- * <p>This is an advanced method for use in subclassing.
- * If you override this method, your implementation should call the
- * <code>super.updateDisplayList()</code> method and call the
- * <code>move()</code> and <code>setActualSize()</code> methods
- * on each of the children.
- * For the purposes of performing layout, you should get the size
- * of this container from the <code>unscaledWidth</code> and
- * <code>unscaledHeight</code> properties, not the <code>width</code>
- * and <code>height</code> properties.
- * The <code>width</code> and <code>height</code> properties
- * do not take into account the value of the <code>scaleX</code>
- * and <code>scaleY</code> properties for this container.</p>
- *
- * @param unscaledWidth Specifies the width of the component, in pixels,
- * in the component's coordinates, regardless of the value of the
- * <code>scaleX</code> property of the component.
- *
- * @param unscaledHeight Specifies the height of the component, in pixels,
- * in the component's coordinates, regardless of the value of the
- * <code>scaleY</code> property of the component.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- /* override protected function updateDisplayList(unscaledWidth:Number,
- unscaledHeight:Number):void
- {
- // Don't do any layout at the usual time.
- // Instead, we'll do our layout
- // when Grid.updateDisplayList() calls GridRow.doRowLayout().
- } */
-
- /**
- * @private
- * Use the horizontalGap from my parent grid;
- * ignore any horizontalGap that is set on the GridRow.
- */
- /* override public function getStyle(styleProp:String):*
- {
- return styleProp == "horizontalGap" && parent ?
- Grid(parent).getStyle("horizontalGap") :
- super.getStyle(styleProp);
- } */
-
- //--------------------------------------------------------------------------
- //
- // Methods
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * Calculates the preferred, minimum and maximum sizes
- * of the GridRow container.
- */
- /* internal function updateRowMeasurements():void
- {
- var numChildren:Number = columnWidths.length;
-
- var minWidth:Number = 0;
- var preferredWidth:Number = 0;
-
- for (var i:int = 0; i < numChildren; i++)
- {
- var child:GridColumnInfo = columnWidths[i];
- minWidth += child.min;
- preferredWidth += child.preferred;
- }
-
- var wPadding:Number = layoutObject.widthPadding(numChildren);
- var hPadding:Number = layoutObject.heightPadding(0);
- var rowInfo:GridRowInfo = rowHeights[rowIndex];
-
- measuredMinWidth = minWidth + wPadding;
- measuredMinHeight = rowInfo.min + hPadding;
- measuredWidth = preferredWidth + wPadding;
- measuredHeight = rowInfo.preferred + hPadding;
- } */
-
- /**
- * @private
- */
- /* internal function doRowLayout(unscaledWidth:Number,
- unscaledHeight:Number):void
- {
- // Call layoutChrome() to size and position the border.
- layoutChrome(unscaledWidth, unscaledHeight);
-
- var n:Number = numChildren;
- if (n == 0)
- return;
-
- // Block requeue-ing. No layout pass should
- // result in the invalidation of your size and layout.
- var oldSizeFlag:Boolean = invalidateSizeFlag;
- var oldDisplayListFlag:Boolean = invalidateDisplayListFlag;
- invalidateSizeFlag = true;
- invalidateDisplayListFlag = true;
-
- // Run the standard Flex layout algorithm to position the columns.
- // We normally only run the Flex layout algorithm once, but we'll
- // run it again if the min/max/prefWidth changes (which can happen
- // if those values are set explicitly for this row).
- if (parent.getChildIndex(this) == 0 ||
- isNaN(columnWidths[0].x) ||
- columnWidths.minWidth != minWidth ||
- columnWidths.maxWidth != maxWidth ||
- columnWidths.preferredWidth != getExplicitOrMeasuredWidth() ||
- columnWidths.percentWidth != percentWidth ||
- columnWidths.width != unscaledWidth ||
- columnWidths.paddingLeft != getStyle("paddingLeft") ||
- columnWidths.paddingRight != getStyle("paddingRight") ||
- columnWidths.horizontalAlign != getStyle("horizontalAlign") ||
- columnWidths.borderStyle != getStyle("borderStyle"))
- {
- calculateColumnWidths();
- columnWidths.minWidth = minWidth;
- columnWidths.maxWidth = maxWidth;
- columnWidths.preferredWidth = getExplicitOrMeasuredWidth();
- columnWidths.percentWidth = percentWidth;
- columnWidths.width = unscaledWidth;
- columnWidths.paddingLeft = getStyle("paddingLeft");
- columnWidths.paddingRight = getStyle("paddingRight");
- columnWidths.horizontalAlign = getStyle("horizontalAlign");
- columnWidths.borderStyle = getStyle("borderStyle");
- }
-
- var vm:EdgeMetrics = viewMetricsAndPadding;
-
- // Now position the actual child GridItem objects, based on the
- // values that were stored in the rowHeights and columnWidths arrays.
- for (var i:int = 0; i < n; i++)
- {
- var child:GridItem = GridItem(getChildAt(i));
- var colIndex:int = child.colIndex;
- var x:Number = columnWidths[colIndex].x;
- var y:Number = vm.top;
- var percentHeight:Number = child.percentHeight;
-
- var finalColIndex:int =
- Math.min(colIndex + child.colSpan, columnWidths.length);
- var finalCol:GridColumnInfo = columnWidths[finalColIndex - 1];
- var w:Number = finalCol.x + finalCol.width - x;
-
- var finalRowIndex:int =
- Math.min(rowIndex + child.rowSpan, rowHeights.length);
- var finalRow:GridRowInfo = rowHeights[finalRowIndex - 1];
- var h:Number = finalRow.y + finalRow.height -
- rowHeights[rowIndex].y - vm.top - vm.bottom;
-
- // If the grid cell is larger than the maxWidth/maxHeight
- // of this GridItem, then position the GridItem
- // according to horizontalAlign & vertical
- // Also, if the GridItem has a percentHeight that's less than 100%,
- // then shrink the height of the GridItem so that it consumes only
- // a fraction of the space allocated to the row.
- var diff:Number = w - child.maxWidth;
- if (diff > 0)
- {
- x += diff * layoutObject.getHorizontalAlignValue();
- w -= diff;
- }
- diff = h - child.maxHeight;
- if (percentHeight && percentHeight < 100)
- diff = Math.max(diff, h * (100 - percentHeight));
- if (diff > 0)
- {
- y = diff * layoutObject.getVerticalAlignValue();
- h -= diff;
- }
-
- w = Math.ceil(w);
- h = Math.ceil(h);
-
- child.move(x, y);
- child.setActualSize(w, h);
- }
-
- invalidateSizeFlag = oldSizeFlag;
- invalidateDisplayListFlag = oldDisplayListFlag;
- } */
-
- /**
- * @private
- */
- /* private function calculateColumnWidths():void
- {
- var vm:EdgeMetrics = viewMetricsAndPadding;
- var gap:Number = getStyle("horizontalGap");
- var numChildren:int = columnWidths.length;
- var spaceForChildren:Number =
- unscaledWidth - vm.left -
- vm.right - (numChildren - 1) * gap;
- var spaceToDistribute:Number;
- var columnInfo:GridColumnInfo;
- var left:Number;
- var i:int;
-
- var totalPercentWidth:Number = 0;
- var flexibleColumnWidths:Array = [];
- spaceToDistribute = spaceForChildren;
-
- // If the child is flexible, store information about it in the
- // flexibleColumnWidths. For non-flexible children, just set the
- // columnWidths[i].width property immediately.
- //
- // Also calculate the sum of all percentWidths, and calculate the
- // sum of the width of all non-flexible children.
- for (i = 0; i < numChildren; i++)
- {
- columnInfo = columnWidths[i];
- var percentWidth:Number = columnInfo.percent;
-
- if (percentWidth)
- {
- totalPercentWidth += percentWidth;
- flexibleColumnWidths.push(columnInfo);
- }
- else
- {
- var width:Number = columnInfo.width = columnInfo.preferred;
- spaceToDistribute -= width;
- }
- }
-
- // Distribute the extra space among the children.
- if (totalPercentWidth)
- {
- spaceToDistribute = Flex.flexChildrenProportionally(
- spaceForChildren, spaceToDistribute,
- totalPercentWidth, flexibleColumnWidths);
-
- // Copy the calculated width
- // from columnInfo.space to columnInfo.width.
- var numFlexChildren:int = flexibleColumnWidths.length;
- for (i = 0; i < numFlexChildren; i++)
- {
- columnInfo = flexibleColumnWidths[i];
- columnInfo.width = columnInfo.size;
- }
- }
-
- // Set each child's x-coordinate.
- left = vm.left + spaceToDistribute * layoutObject.getHorizontalAlignValue();
- for (i = 0; i < numChildren; i++)
- {
- columnInfo = columnWidths[i];
- columnInfo.x = left;
- left += columnInfo.width + gap;
- }
- } */
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+COMPILE::SWF
+{
+import flash.display.DisplayObject;
+}
+
+import mx.containers.gridClasses.GridColumnInfo;
+import mx.containers.gridClasses.GridRowInfo;
+import mx.containers.utilityClasses.Flex;
+import mx.core.EdgeMetrics;
+import mx.core.IChildList;
+import mx.core.IUIComponent;
+import mx.core.ScrollPolicy;
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+/**
+ * Horizontal alignment of children in the container.
+ * Possible values are <code>"left"</code>, <code>"center"</code>,
+ * and <code>"right"</code>.
+ * The default value is <code>"left"</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
+
+/**
+ * Vertical alignment of children in the container.
+ * Possible values are <code>"top"</code>, <code>"middle"</code>,
+ * and <code>"bottom"</code>.
+ * The default value is <code>"top"</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="verticalAlign", type="String", enumeration="bottom,middle,top", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="clipContent", kind="property")]
+[Exclude(name="direction", kind="property")]
+[Exclude(name="focusEnabled", kind="property")]
+[Exclude(name="focusManager", kind="property")]
+[Exclude(name="focusPane", kind="property")]
+[Exclude(name="horizontalLineScrollSize", kind="property")]
+[Exclude(name="horizontalPageScrollSize", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="horizontalScrollPosition", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="mouseFocusEnabled", kind="property")]
+[Exclude(name="verticalLineScrollSize", kind="property")]
+[Exclude(name="verticalPageScrollSize", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+[Exclude(name="verticalScrollPosition", kind="property")]
+
+[Exclude(name="adjustFocusRect", kind="method")]
+[Exclude(name="getFocus", kind="method")]
+[Exclude(name="isOurFocus", kind="method")]
+[Exclude(name="setFocus", kind="method")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+[Exclude(name="move", kind="event")]
+[Exclude(name="scroll", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="horizontalGap", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="verticalGap", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+[Exclude(name="moveEffect", kind="effect")]
+
+/**
+ * The GridRow container defines a row in a Grid container, and contains
+ * GridCell containers.
+ *
+ * <p>GridRow containers have the following default sizing characteristics:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Characteristic</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Height of each row and each cell</td>
+ * <td>The default or explicit height of the tallest item in the row. If a GridItem container does not
+ * have an explicit size, its default height is the default or explicit height of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Width of each column and each cell</td>
+ * <td>The default or explicit width of the widest item in the column. If a GridItem container does not have an explicit
+ * width, its default width is the default or explicit width of the child in the cell.</td>
+ * </tr>
+ * <tr>
+ * <td>Gap between rows and columns</td>
+ * <td>Determined by the horizontalGap and verticalGap properties of the Grid class. The default value for both
+ * gaps is 6 pixels.</td>
+ * </tr>
+ * <tr>
+ * <td>Default padding</td>
+ * <td>0 pixels for the top, bottom, left, and right values, for all three container classes.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:GridRow></code> must be a child of the
+ * <code><mx:Grid></code> tag, and has one or more child
+ * <code><mx:GridItem></code> tags that define the grid cells.</p>
+ *
+ * <p>The <code><mx:GridRow></code> container inherits the
+ * tag attributes of its superclass, and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:Grid>
+ * <mx:GridRow
+ * <strong>Styles</strong>
+ * horizontalAlign="left|center|right"
+ * verticalAlign="top|middle|bottom"
+ * >
+ * <mx:GridItem
+ * <i>child components</i>
+ * </mx:GridItem>
+ * ...
+ * </mx:GridRow>
+ * ...
+ * </mx:Grid>
+ * </pre>
+ *
+ * @see mx.containers.Grid
+ * @see mx.containers.GridItem
+ *
+ * @includeExample examples/GridLayoutExample.mxml
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class GridRow extends HBox
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function GridRow()
+ {
+ super();
+
+ // Set this to false so Container doesn't clip.
+ //super.clipContent = false;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Width of columns in the row.
+ */
+ internal var columnWidths:Array /* of GridColumnInfo */;
+
+ /**
+ * @private
+ * Height of rows.
+ */
+ internal var rowHeights:Array /* of GridRowInfo */;
+
+ /**
+ * @private
+ * Index of this row.
+ */
+ internal var rowIndex:int = 0;
+
+ /**
+ * @private
+ */
+ internal var numGridItems:int;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // clipContent
+ //----------------------------------
+
+ [Inspectable(environment="none")]
+
+ /**
+ * @private
+ override public function get clipContent():Boolean
+ {
+ return false;
+ }
+ */
+
+ /**
+ * @private
+ * Don't allow user to set clipContent.
+ * The Grid will clip all GridItems, if necessary.
+ * We don't want GridRows to do clipping, because GridItems with
+ * rowSpan > 1 will extend outside the borders of the GridRow.
+ override public function set clipContent(value:Boolean):void
+ {
+ }
+ */
+
+ //----------------------------------
+ // horizontalScrollPolicy
+ //----------------------------------
+
+ [Inspectable(environment="none")]
+
+ /**
+ * @private
+ override public function get horizontalScrollPolicy():String
+ {
+ return ScrollPolicy.OFF;
+ }
+ */
+
+ /**
+ * @private
+ * Don't allow user to set horizontalScrollPolicy.
+ override public function set horizontalScrollPolicy(value:String):void
+ {
+ }
+ */
+
+ //----------------------------------
+ // verticalScrollPolicy
+ //----------------------------------
+
+ [Inspectable(environment="none")]
+
+ /**
+ * @private
+ override public function get verticalScrollPolicy():String
+ {
+ return ScrollPolicy.OFF;
+ }
+ */
+
+ /**
+ * @private
+ * Don't allow user to set verticalScrollPolicy.
+ override public function set verticalScrollPolicy(value:String):void
+ {
+ }
+ */
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: DisplayObjectContainer
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * If the child index of a row item is changed, we need to recompute
+ * the column size and arrange children in proper order.
+ * Hence invalidate the size and layout of the Grid.
+ */
+ override public function setChildIndex(child:ROYALE::DISPLAYOBJECT,
+ newIndex:int):void
+ {
+ super.setChildIndex(child, newIndex);
+
+ Grid(parent).invalidateSize();
+ Grid(parent).invalidateDisplayList();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * If something causes a GridRow's measurements to change,
+ * this function is called.
+ * Ordinarily, this function registers the object with the
+ * layout manager, so that measure is called later.
+ * For GridRows, we can't do measurement until after the parent Grid
+ * has done its measurement.
+ * Therefore, we register the parent Grid with the layout manager.
+ * The Grid.measure() contains code that calls measure()
+ * on each child GridRow.
+ */
+ override public function invalidateSize():void
+ {
+ if (ROYALE::DISPLAYOBJECT)
+ trace("this syntax is valid?");
+
+ super.invalidateSize();
+ if (parent)
+ Grid(parent).invalidateSize();
+ }
+
+ /**
+ * @private
+ */
+ override public function invalidateDisplayList():void
+ {
+ super.invalidateDisplayList();
+ if (parent)
+ Grid(parent).invalidateDisplayList();
+ }
+
+ /**
+ * Sets the size and position of each child of the GridRow container.
+ * For more information about the Grid layout algorithm,
+ * see the <a href="Grid.html#updateDisplayList()">Grid.updateDisplayList()</a>
+ * method.
+ *
+ * <p>You should not call this method directly.
+ * The Flex LayoutManager calls it at the appropriate time.
+ * At application startup, the Flex LayoutManager calls the
+ * <code>updateDisplayList()</code> method on every component,
+ * starting with the root and working downward.</p>
+ *
+ * <p>This is an advanced method for use in subclassing.
+ * If you override this method, your implementation should call the
+ * <code>super.updateDisplayList()</code> method and call the
+ * <code>move()</code> and <code>setActualSize()</code> methods
+ * on each of the children.
+ * For the purposes of performing layout, you should get the size
+ * of this container from the <code>unscaledWidth</code> and
+ * <code>unscaledHeight</code> properties, not the <code>width</code>
+ * and <code>height</code> properties.
+ * The <code>width</code> and <code>height</code> properties
+ * do not take into account the value of the <code>scaleX</code>
+ * and <code>scaleY</code> properties for this container.</p>
+ *
+ * @param unscaledWidth Specifies the width of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleX</code> property of the component.
+ *
+ * @param unscaledHeight Specifies the height of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleY</code> property of the component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ // Don't do any layout at the usual time.
+ // Instead, we'll do our layout
+ // when Grid.updateDisplayList() calls GridRow.doRowLayout().
+ }
+
+ /**
+ * @private
+ * Use the horizontalGap from my parent grid;
+ * ignore any horizontalGap that is set on the GridRow.
+ */
+ override public function getStyle(styleProp:String):*
+ {
+ return styleProp == "horizontalGap" && parent ?
+ Grid(parent).getStyle("horizontalGap") :
+ super.getStyle(styleProp);
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Calculates the preferred, minimum and maximum sizes
+ * of the GridRow container.
+ */
+ internal function updateRowMeasurements():void
+ {
+ var numChildren:Number = columnWidths.length;
+
+ var minWidth:Number = 0;
+ var preferredWidth:Number = 0;
+
+ for (var i:int = 0; i < numChildren; i++)
+ {
+ var child:GridColumnInfo = columnWidths[i];
+ minWidth += child.min;
+ preferredWidth += child.preferred;
+ }
+
+ var wPadding:Number = layoutObject.widthPadding(numChildren);
+ var hPadding:Number = layoutObject.heightPadding(0);
+ var rowInfo:GridRowInfo = rowHeights[rowIndex];
+
+ measuredMinWidth = minWidth + wPadding;
+ measuredMinHeight = rowInfo.min + hPadding;
+ measuredWidth = preferredWidth + wPadding;
+ measuredHeight = rowInfo.preferred + hPadding;
+ }
+
+ /**
+ * @private
+ */
+ internal function doRowLayout(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ // Call layoutChrome() to size and position the border.
+ //layoutChrome(unscaledWidth, unscaledHeight);
+
+ var n:Number = numChildren;
+ if (n == 0)
+ return;
+
+ // Block requeue-ing. No layout pass should
+ // result in the invalidation of your size and layout.
+ //var oldSizeFlag:Boolean = invalidateSizeFlag;
+ //var oldDisplayListFlag:Boolean = invalidateDisplayListFlag;
+ //invalidateSizeFlag = true;
+ //invalidateDisplayListFlag = true;
+
+ // Run the standard Flex layout algorithm to position the columns.
+ // We normally only run the Flex layout algorithm once, but we'll
+ // run it again if the min/max/prefWidth changes (which can happen
+ // if those values are set explicitly for this row).
+ if ((parent as IChildList).getChildIndex(this) == 0 ||
+ isNaN(columnWidths[0].x) ||
+ columnWidths[0].minWidth != minWidth ||
+ columnWidths[0].maxWidth != maxWidth ||
+ columnWidths[0].preferredWidth != getExplicitOrMeasuredWidth() ||
+ columnWidths[0].percentWidth != percentWidth ||
+ columnWidths[0].width != unscaledWidth ||
+ columnWidths[0].paddingLeft != getStyle("paddingLeft") ||
+ columnWidths[0].paddingRight != getStyle("paddingRight") ||
+ columnWidths[0].horizontalAlign != getStyle("horizontalAlign") ||
+ columnWidths[0].borderStyle != getStyle("borderStyle"))
+ {
+ calculateColumnWidths();
+ columnWidths[0].minWidth = minWidth;
+ columnWidths[0].maxWidth = maxWidth;
+ columnWidths[0].preferredWidth = getExplicitOrMeasuredWidth();
+ columnWidths[0].percentWidth = percentWidth;
+ columnWidths[0].width = unscaledWidth;
+ columnWidths[0].paddingLeft = getStyle("paddingLeft");
+ columnWidths[0].paddingRight = getStyle("paddingRight");
+ columnWidths[0].horizontalAlign = getStyle("horizontalAlign");
+ columnWidths[0].borderStyle = getStyle("borderStyle");
+ }
+
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+
+ // Now position the actual child GridItem objects, based on the
+ // values that were stored in the rowHeights and columnWidths arrays.
+ for (var i:int = 0; i < n; i++)
+ {
+ var child:GridItem = GridItem(getChildAt(i));
+ var colIndex:int = child.colIndex;
+ var x:Number = columnWidths[colIndex].x;
+ var y:Number = vm.top;
+ var percentHeight:Number = child.percentHeight;
+
+ var finalColIndex:int =
+ Math.min(colIndex + child.colSpan, columnWidths.length);
+ var finalCol:GridColumnInfo = columnWidths[finalColIndex - 1];
+ var w:Number = finalCol.x + finalCol.width - x;
+
+ var finalRowIndex:int =
+ Math.min(rowIndex + child.rowSpan, rowHeights.length);
+ var finalRow:GridRowInfo = rowHeights[finalRowIndex - 1];
+ var h:Number = finalRow.y + finalRow.height -
+ rowHeights[rowIndex].y - vm.top - vm.bottom;
+
+ // If the grid cell is larger than the maxWidth/maxHeight
+ // of this GridItem, then position the GridItem
+ // according to horizontalAlign & vertical
+ // Also, if the GridItem has a percentHeight that's less than 100%,
+ // then shrink the height of the GridItem so that it consumes only
+ // a fraction of the space allocated to the row.
+ var diff:Number = w - child.maxWidth;
+ if (diff > 0)
+ {
+ x += diff * layoutObject.getHorizontalAlignValue();
+ w -= diff;
+ }
+ diff = h - child.maxHeight;
+ if (percentHeight && percentHeight < 100)
+ diff = Math.max(diff, h * (100 - percentHeight));
+ if (diff > 0)
+ {
+ y = diff * layoutObject.getVerticalAlignValue();
+ h -= diff;
+ }
+
+ w = Math.ceil(w);
+ h = Math.ceil(h);
+
+ child.move(x, y);
+ child.setActualSize(w, h);
+ }
+
+ //invalidateSizeFlag = oldSizeFlag;
+ //invalidateDisplayListFlag = oldDisplayListFlag;
+ }
+
+ /**
+ * @private
+ */
+ private function calculateColumnWidths():void
+ {
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+ var gap:Number = getStyle("horizontalGap");
+ var numChildren:int = columnWidths.length;
+ var spaceForChildren:Number =
+ unscaledWidth - vm.left -
+ vm.right - (numChildren - 1) * gap;
+ var spaceToDistribute:Number;
+ var columnInfo:GridColumnInfo;
+ var left:Number;
+ var i:int;
+
+ var totalPercentWidth:Number = 0;
+ var flexibleColumnWidths:Array = [];
+ spaceToDistribute = spaceForChildren;
+
+ // If the child is flexible, store information about it in the
+ // flexibleColumnWidths. For non-flexible children, just set the
+ // columnWidths[i].width property immediately.
+ //
+ // Also calculate the sum of all percentWidths, and calculate the
+ // sum of the width of all non-flexible children.
+ for (i = 0; i < numChildren; i++)
+ {
+ columnInfo = columnWidths[i];
+ var percentWidth:Number = columnInfo.percent;
+
+ if (percentWidth)
+ {
+ totalPercentWidth += percentWidth;
+ flexibleColumnWidths.push(columnInfo);
+ }
+ else
+ {
+ var width:Number = columnInfo.width = columnInfo.preferred;
+ spaceToDistribute -= width;
+ }
+ }
+
+ // Distribute the extra space among the children.
+ if (totalPercentWidth)
+ {
+ spaceToDistribute = Flex.flexChildrenProportionally(
+ spaceForChildren, spaceToDistribute,
+ totalPercentWidth, flexibleColumnWidths);
+
+ // Copy the calculated width
+ // from columnInfo.space to columnInfo.width.
+ var numFlexChildren:int = flexibleColumnWidths.length;
+ for (i = 0; i < numFlexChildren; i++)
+ {
+ columnInfo = flexibleColumnWidths[i];
+ columnInfo.width = columnInfo.size;
+ }
+ }
+
+ // Set each child's x-coordinate.
+ left = vm.left + spaceToDistribute * layoutObject.getHorizontalAlignValue();
+ for (i = 0; i < numChildren; i++)
+ {
+ columnInfo = columnWidths[i];
+ columnInfo.x = left;
+ left += columnInfo.width + gap;
+ }
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/TabNavigator.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/TabNavigator.as
new file mode 100644
index 0000000..54953da
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/TabNavigator.as
@@ -0,0 +1,423 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+COMPILE::JS
+{
+ import goog.DEBUG;
+}
+
+import mx.controls.Button;
+import mx.core.Container;
+import mx.core.EdgeMetrics;
+import mx.managers.IFocusManagerComponent;
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+// The fill related styles are applied to the children
+// of the TabNavigator, ie: the TabBar
+//include "../styles/metadata/FillStyles.as"
+
+// The focus styles are applied to the TabNavigator itself.
+//include "../styles/metadata/FocusStyles.as"
+
+/**
+ * Name of CSS style declaration that specifies styles for the first tab.
+ * If this is unspecified, the default value
+ * of the <code>tabStyleName</code> style property is used.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="firstTabStyleName", type="String", inherit="no")]
+
+/**
+ * Horizontal positioning of tabs at the top of this TabNavigator container.
+ * The possible values are <code>"left"</code>, <code>"center"</code>,
+ * and <code>"right"</code>.
+ * The default value is <code>"left"</code>.
+ *
+ * <p>If the value is <code>"left"</code>, the left edge of the first tab
+ * is aligned with the left edge of the TabNavigator container.
+ * If the value is <code>"right"</code>, the right edge of the last tab
+ * is aligned with the right edge of the TabNavigator container.
+ * If the value is <code>"center"</code>, the tabs are centered on the top
+ * of the TabNavigator container.</p>
+ *
+ * <p>To see a difference between the alignments,
+ * the total width of all the tabs must be less than
+ * the width of the TabNavigator container.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="horizontalAlign", type="String", enumeration="left,center,right", inherit="no")]
+
+/**
+ * Separation between tabs, in pixels.
+ * The default value is -1, so that the borders of adjacent tabs overlap.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="horizontalGap", type="Number", format="Length", inherit="no")]
+
+/**
+ * Name of CSS style declaration that specifies styles for the last tab.
+ * If this is unspecified, the default value
+ * of the <code>tabStyleName</code> style property is used.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="lastTabStyleName", type="String", inherit="no")]
+
+/**
+ * Name of CSS style declaration that specifies styles for the text
+ * of the selected tab.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="selectedTabTextStyleName", type="String", inherit="no")]
+
+/**
+ * Height of each tab, in pixels.
+ * The default value is <code>undefined</code>.
+ * When this property is <code>undefined</code>, the height of each tab is
+ * determined by the font styles applied to this TabNavigator container.
+ * If you set this property, the specified value overrides this calculation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="tabHeight", type="Number", format="Length", inherit="no")]
+
+/**
+ * Name of CSS style declaration that specifies styles for the tabs.
+ *
+ * @default undefined
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="tabStyleName", type="String", inherit="no")]
+
+/**
+ * Width of each tab, in pixels.
+ * The default value is <code>undefined</code>.
+ * When this property is <code>undefined</code>, the width of each tab is
+ * determined by the width of its label text, using the font styles applied
+ * to this TabNavigator container.
+ * If the total width of the tabs would be greater than the width of the
+ * TabNavigator container, the calculated tab width is decreased, but
+ * only to a minimum of 30 pixels.
+ * If you set this property, the specified value overrides this calculation.
+ *
+ * <p>The label text on a tab is truncated if it does not fit in the tab.
+ * If a tab label is truncated, a tooltip with the full label text is
+ * displayed when a user rolls the mouse over the tab.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="tabWidth", type="Number", format="Length", inherit="no")]
+
+/**
+ * The horizontal offset, in pixels, of the tab bar from the left edge
+ * of the TabNavigator container.
+ * A positive value moves the tab bar to the right. A negative
+ * value move the tab bar to the left.
+ *
+ * @default 0
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="tabOffset", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="defaultButton", kind="property")]
+[Exclude(name="horizontalLineScrollSize", kind="property")]
+[Exclude(name="horizontalPageScrollSize", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="horizontalScrollPosition", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="verticalLineScrollSize", kind="property")]
+[Exclude(name="verticalPageScrollSize", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+[Exclude(name="verticalScrollPosition", kind="property")]
+
+[Exclude(name="scroll", kind="event")]
+
+[Exclude(name="fillAlphas", kind="style")]
+[Exclude(name="fillColors", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+//--------------------------------------
+// Other metadata
+//--------------------------------------
+
+//[IconFile("TabNavigator.png")]
+
+/**
+ * The MX TabNavigator container extends the MX ViewStack container by including
+ * a TabBar container for navigating between its child containers.
+ *
+ * <p><b>Note:</b> The direct children of an MX navigator container must be
+ * MX containers, either MX layout or MX navigator containers,
+ * or the Spark NavigatorContent container.
+ * You cannot directly nest a control or a Spark container
+ * other than the Spark NavigatorContent container within a navigator;
+ * they must be children of an child MX container.</p>
+ *
+ * <p>Like a ViewStack container, a TabNavigator container has a collection
+ * of child containers, in which only one child at a time is visible.
+ * Flex automatically creates a TabBar container at the top of the
+ * TabNavigator container, with a tab corresponding to each child container.
+ * Each tab can have its own label and icon.
+ * When the user clicks a tab, the corresponding child container becomes
+ * visible as the selected child of the TabNavigator container.</p>
+ *
+ * <p>When you change the currently visible child container,
+ * you can use the <code>hideEffect</code> property of the container being
+ * hidden and the <code>showEffect</code> property of the newly visible child
+ * container to apply an effect to the child containers.
+ * The TabNavigator container waits for the <code>hideEffect</code> of the
+ * child container being hidden to complete before it reveals the new child
+ * container.
+ * You can interrupt a currently playing effect if you change the
+ * <code>selectedIndex</code> property of the TabNavigator container
+ * while an effect is playing. </p>
+ *
+ * <p>To define the appearance of tabs in a TabNavigator, you can define style properties in a
+ * Tab type selector, as the following example shows:</p>
+ * <pre>
+ * <fx:Style>
+ * @namespace mx "library://ns.adobe.com/flex/mx"
+ * mx|Tab {
+ * fillColors: #006699, #cccc66;
+ * upSkin: ClassReference("CustomSkinClass");
+ * overSkin: ClassReference("CustomSkinClass");
+ * downSkin: ClassReference("CustomSkinClass");
+ * }
+ * </fx:Style>
+ * </pre>
+ *
+ * <p>The Tab type selector defines values on the hidden mx.controls.tabBarClasses.Tab
+ * class. The default values for the Tab type selector are defined in the
+ * defaults.css file.</p>
+ *
+ * <p>You can also define the styles in a class selector that you specify using
+ * the <code>tabStyleName</code> style property; for example:</p>
+ * <pre>
+ * <fx:Style>
+ * @namespace mx "library://ns.adobe.com/flex/mx"
+ * mx|TabNavigator {
+ * tabStyleName:myTabStyle;
+ * }
+ *
+ * .myTabStyle {
+ * fillColors: #006699, #cccc66;
+ * upSkin: ClassReference("CustomSkinClass");
+ * overSkin: ClassReference("CustomSkinClass");
+ * downSkin: ClassReference("CustomSkinClass");
+ * }
+ * </fx:Style>
+ * </pre>
+ *
+ * <p>A TabNavigator container has the following default sizing characteristics:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Characteristic</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Default size</td>
+ * <td>The default or explicit width and height of the first active child
+ * plus the tabs, at their default or explicit heights and widths.
+ * Default tab height is determined by the font, style, and skin applied
+ * to the TabNavigator container.</td>
+ * </tr>
+ * <tr>
+ * <td>Container resizing rules</td>
+ * <td>By default, TabNavigator containers are only sized once to fit the size
+ * of the first child container. They do not resize when you navigate to
+ * other child containers. To force TabNavigator containers to resize when
+ * you navigate to a different child container, set the resizeToContent
+ * property to true.</td>
+ * </tr>
+ * <tr>
+ * <td>Child layout rules</td>
+ * <td>If the child is larger than the TabNavigator container, it is clipped. If
+ * the child is smaller than the TabNavigator container, it is aligned to
+ * the upper-left corner of the TabNavigator container.</td>
+ * </tr>
+ * <tr>
+ * <td>Default padding</td>
+ * <td>0 pixels for the top, bottom, left, and right values.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:TabNavigator></code> tag inherits all of the
+ * tag attributes of its superclass,
+ * and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:TabNavigator
+ * <b>Styles</b>
+ * firstTabStyleName="<i>Value of the</i> <code>tabStyleName</code> <i>property</i>"
+ * focusAlpha="0.4"
+ * focusRoundedCorners="tl tr bl br"
+ * horizontalAlign="left|center|right"
+ * horizontalGap="-1"
+ * lastTabStyleName="<i>Value of the</i> <code>tabStyleName</code> <i>property</i>"
+ * selectedTabTextStyleName="undefined"
+ * tabHeight="undefined"
+ * tabOffset="0"
+ * tabStyleName="<i>Name of CSS style declaration that specifies styles for the tabs</i>"
+ * tabWidth="undefined"
+ * >
+ * ...
+ * <i>child tags</i>
+ * ...
+ * </mx:TabNavigator>
+ * </pre>
+ *
+ * @includeExample examples/TabNavigatorExample.mxml
+ *
+ * @see mx.containers.ViewStack
+ * @see mx.controls.TabBar
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class TabNavigator extends ViewStack implements IFocusManagerComponent
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private static const MIN_TAB_WIDTH:Number = 30;
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function TabNavigator()
+ {
+ super();
+
+ // Most views can't take focus, but a TabNavigator can.
+ // Container.init() has set tabEnabled false, so we
+ // have to set it back to true.
+ tabEnabled = true;
+ tabFocusEnabled = true;
+ hasFocusableChildren = true;
+
+ // historyManagementEnabled = true;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties
+ //
+ //--------------------------------------------------------------------------
+
+
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Returns the tab of the navigator's TabBar control at the specified
+ * index.
+ *
+ * @param index Index in the navigator's TabBar control.
+ *
+ * @return The tab at the specified index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function getTabAt(index:int):Button
+ {
+ // TODO
+ if (GOOG::DEBUG)
+ trace("cacheAsBitmap not implemented");
+ return null;
+ }
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/ViewStack.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/ViewStack.as
index 21dc3a0c..b0dd4ff 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/ViewStack.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/ViewStack.as
@@ -1,520 +1,1651 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 mx.containers
-{
- COMPILE::JS {
- import goog.DEBUG;
- }
- import org.apache.royale.events.Event;
- import mx.core.Container;
- import mx.core.IUIComponent;
- import mx.core.UIComponent;
-/*
-import flash.display.DisplayObject;
-import flash.events.Event;
-
-import mx.automation.IAutomationObject;
-import mx.core.Container;
-import mx.core.ContainerCreationPolicy;
-import mx.core.EdgeMetrics;
-import mx.core.IInvalidating;
-import mx.core.INavigatorContent;
-import mx.core.ISelectableList;
-import mx.core.IUIComponent;
-import mx.core.ScrollPolicy;
-import mx.core.UIComponent;
-import mx.core.mx_internal;
-import mx.effects.Effect;
-import mx.effects.EffectManager;
-import mx.events.ChildExistenceChangedEvent;
-import mx.events.CollectionEvent;
-import mx.events.CollectionEventKind;
-import mx.events.EffectEvent;
-import mx.events.FlexEvent;
-import mx.events.IndexChangedEvent;
-import mx.events.PropertyChangeEvent;
-import mx.geom.RoundedRectangle;
-import mx.managers.HistoryManager;
-import mx.managers.IHistoryManagerClient;
-
-use namespace mx_internal;
-*/
-//--------------------------------------
-// Events
-//--------------------------------------
-
-/**
- * Dispatched when the selected child container changes.
- *
- * @eventType mx.events.IndexChangedEvent.CHANGE
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
-//[Event(name="change", type="mx.events.IndexChangedEvent")]
-
-//--------------------------------------
-// Styles
-//--------------------------------------
-
-//include "../styles/metadata/GapStyles.as"
-
-/**
- * Number of pixels between the container's bottom border and its content area.
- * The default value is 0.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
-//[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
-
-/**
- * Number of pixels between the container's top border and its content area.
- * The default value is 0.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
-[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
-
-//--------------------------------------
-// Excluded APIs
-//--------------------------------------
-/*
-[Exclude(name="autoLayout", kind="property")]
-[Exclude(name="defaultButton", kind="property")]
-[Exclude(name="horizontalLineScrollSize", kind="property")]
-[Exclude(name="horizontalPageScrollSize", kind="property")]
-[Exclude(name="horizontalScrollBar", kind="property")]
-[Exclude(name="horizontalScrollPolicy", kind="property")]
-[Exclude(name="horizontalScrollPosition", kind="property")]
-[Exclude(name="maxHorizontalScrollPosition", kind="property")]
-[Exclude(name="maxVerticalScrollPosition", kind="property")]
-[Exclude(name="verticalLineScrollSize", kind="property")]
-[Exclude(name="verticalPageScrollSize", kind="property")]
-[Exclude(name="verticalScrollBar", kind="property")]
-[Exclude(name="verticalScrollPolicy", kind="property")]
-[Exclude(name="verticalScrollPosition", kind="property")]
-
-[Exclude(name="focusIn", kind="event")]
-[Exclude(name="focusOut", kind="event")]
-[Exclude(name="scroll", kind="event")]
-
-[Exclude(name="focusBlendMode", kind="style")]
-[Exclude(name="focusSkin", kind="style")]
-[Exclude(name="focusThickness", kind="style")]
-[Exclude(name="horizontalScrollBarStyleName", kind="style")]
-[Exclude(name="verticalScrollBarStyleName", kind="style")]
-
-[Exclude(name="focusInEffect", kind="effect")]
-[Exclude(name="focusOutEffect", kind="effect")]
-*/
-//--------------------------------------
-// Other metadata
-//--------------------------------------
-
-//[IconFile("ViewStack.png")]
-
-/**
- * An MX ViewStack navigator container consists of a collection of child
- * containers stacked on top of each other, where only one child
- * at a time is visible.
- * When a different child container is selected, it seems to replace
- * the old one because it appears in the same location.
- * However, the old child container still exists; it is just invisible.
- *
- * <p><b>Note:</b> The direct children of an MX navigator container must be
- * MX containers, either MX layout or MX navigator containers,
- * or the Spark NavigatorContent container.
- * You cannot directly nest a control or a Spark container
- * other than the Spark NavigatorContent container within a navigator;
- * they must be children of an child MX container.</p>
- *
- * <p>A ViewStack container does not provide a user interface
- * for selecting which child container is currently visible.
- * Typically, you set its <code>selectedIndex</code> or
- * <code>selectedChild</code> property in ActionScript in response to
- * some user action.
- * Alternately, you can associate an MX LinkBar, TabBar, ButtonBar, or ToggleButtonBar
- * control or a Spark ButtonBar control with a ViewStack container to provide a navigation interface.
- * To do so, specify the ViewStack container as the value of the
- * <code>dataProvider</code> property of the LinkBar, TabBar or
- * ToggleButtonBar container.</p>
- *
- * <p>You might decide to use a more complex navigator container than the
- * ViewStack container, such as a TabNavigator container or Accordion
- * container. In addition to having a collection of child containers,
- * these containers provide their own user interface controls
- * for navigating between their children.</p>
- *
- * <p>When you change the currently visible child container,
- * you can use the <code>hideEffect</code> property of the container being
- * hidden and the <code>showEffect</code> property of the newly visible child
- * container to apply an effect to the child containers.
- * The ViewStack container waits for the <code>hideEffect</code> of the child
- * container being hidden to complete before it reveals the new child
- * container.
- * You can interrupt a currently playing effect if you change the
- * <code>selectedIndex</code> property of the ViewStack container
- * while an effect is playing.</p>
- *
- * <p>The ViewStack container has the following default sizing characteristics:</p>
- * <table class="innertable">
- * <tr>
- * <th>Characteristic</th>
- * <th>Description</th>
- * </tr>
- * <tr>
- * <td>Default size</td>
- * <td>The width and height of the initial active child.</td>
- * </tr>
- * <tr>
- * <td>Container resizing rules</td>
- * <td>By default, ViewStack containers are sized only once to fit the size of the
- * first child container. They do not resize when you navigate to other child
- * containers. To force ViewStack containers to resize when you navigate
- * to a different child container, set the resizeToContent property to true.</td>
- * </tr>
- * <tr>
- * <td>Child sizing rules</td>
- * <td>Children are sized to their default size. If the child is larger than the ViewStack
- * container, it is clipped. If the child is smaller than the ViewStack container,
- * it is aligned to the upper-left corner of the ViewStack container.</td>
- * </tr>
- * <tr>
- * <td>Default padding</td>
- * <td>0 pixels for top, bottom, left, and right values.</td>
- * </tr>
- * </table>
- *
- * @mxml
- *
- * <p>The <code><mx:ViewStack></code> tag inherits the
- * tag attributes of its superclass, with the exception of scrolling-related
- * attributes, and adds the following tag attributes:</p>
- *
- * <pre>
- * <mx:ViewStack
- * <b>Properties</b>
- * historyManagementEnabled="false|true"
- * resizeToContent="false|true"
- * selectedIndex="0"
- *
- * <b>Styles</b>
- * horizontalGap="8"
- * paddingBottom="0"
- * paddingTop="0"
- * verticalGap="6"
- *
- * <b>Events</b>
- * change="<i>No default</i>"
- * >
- * ...
- * <i>child tags</i>
- * ...
- * </mx:ViewStack>
- * </pre>
- *
- * @includeExample examples/ViewStackExample.mxml
- *
- * @see mx.controls.LinkBar
- * @see mx.controls.ButtonBar
- * @see mx.controls.TabBar
- * @see mx.controls.ToggleButtonBar
- * @see spark.components.ButtonBar
- * @see mx.managers.HistoryManager
- * @see mx.managers.LayoutManager
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
-public class ViewStack extends Container //implements IHistoryManagerClient, ISelectableList
-{
- //include "../core/Version.as";
-
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
- public function ViewStack()
- {
- super();
- }
-
- //--------------------------------------------------------------------------
- //
- // Variables
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- //private var needToInstantiateSelectedChild:Boolean = false;
-
- /**
- * @private
- * This flag gets set when selectedIndex is set.
- * Later, when measure()
- * is called, it causes the HistoryManager to save the state.
- */
- //private var bSaveState:Boolean = false;
-
- /**
- * @private
- * This flag gets set by loadState().
- * It prevents the newly restored state from being saved.
- */
- //private var bInLoadState:Boolean = false;
-
- /**
- * @private
- * True until commitProperties has been called at least once.
- */
- //private var firstTime:Boolean = true;
-
- /**
- * @private
- * We'll measure ourselves once and then store the results here
- * for the lifetime of the ViewStack
- */
- /*
- mx_internal var vsMinWidth:Number;
- mx_internal var vsMinHeight:Number;
- mx_internal var vsPreferredWidth:Number;
- mx_internal var vsPreferredHeight:Number;
- */
- /**
- * @private
- * Remember which child has an overlay mask, if any.
- * Used for the dissolve effect.
- */
- //private var effectOverlayChild:UIComponent;
-
- /**
- * @private
- * Keep track of the overlay's targetArea
- * Used for the dissolve effect.
- */
- //private var effectOverlayTargetArea:RoundedRectangle;
-
- /**
- * @private
- * Store the last selectedIndex
- */
- //private var lastIndex:int = -1;
-
- /**
- * @private
- * Whether a change event has to be dispatched in commitProperties()
- */
- //private var dispatchChangeEventPending:Boolean = false;
-
- /**
- * @private
- * If we're in the middle of adding a child
- */
- private var addingChildren:Boolean = false;
-
- //--------------------------------------------------------------------------
- //
- // Properties
- //
- //--------------------------------------------------------------------------
-
- //----------------------------------
- // selectedChild
- //----------------------------------
-
- [Bindable("valueCommit")]
- [Bindable("creationComplete")]
-
- /**
- * A reference to the currently visible child container.
- * The default is a reference to the first child.
- * If there are no children, this property is <code>null</code>.
- *
- * <p><strong>Note:</strong> You can only set this property in an
- * ActionScript statement, not in MXML.</p>
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
- public function get selectedChild():Object //INavigatorContent
- {
- if (selectedIndex == -1)
- return null;
-
- return null; //INavigatorContent(getChildAt(selectedIndex));
- }
-
- /**
- * @private
- */
- public function set selectedChild(
- value:Object):void //INavigatorContent):void
- {
- var newIndex:int; //= getChildIndex(DisplayObject(value));
-
- if (newIndex >= 0 && newIndex < numChildren)
- selectedIndex = newIndex;
- }
-
- //----------------------------------
- // selectedIndex
- //----------------------------------
-
- /**
- * @private
- * Storage for the selectedIndex property.
- */
- private var _selectedIndex:int = -1;
-
- /**
- * @private
- */
- private var proposedSelectedIndex:int = -1;
-
- /**
- * @private
- */
- private var initialSelectedIndex:int = -1;
-
- [Bindable("change")]
- [Bindable("valueCommit")]
- [Bindable("creationComplete")]
- [Inspectable(category="General")]
-
- /**
- * The zero-based index of the currently visible child container.
- * Child indexes are in the range 0, 1, 2, ..., n - 1,
- * where <i>n</i> is the number of children.
- * The default value is 0, corresponding to the first child.
- * If there are no children, the value of this property is <code>-1</code>.
- *
- * <p><strong>Note:</strong> When you add a new child to a ViewStack
- * container, the <code>selectedIndex</code> property is automatically
- * adjusted, if necessary, so that the selected child remains selected.</p>
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Flex 3
- */
- public function get selectedIndex():int
- {
- return proposedSelectedIndex == -1 ?
- _selectedIndex :
- proposedSelectedIndex;
- }
-
- /**
- * @private
- */
- public function set selectedIndex(value:int):void
- {
- // Bail if the index isn't changing.
- if (value == selectedIndex)
- return;
-
- // ignore, probably coming from tabbar
- if (addingChildren)
- return;
-
- // Propose the specified value as the new value for selectedIndex.
- // It gets applied later when measure() calls commitSelectedIndex().
- // The proposed value can be "out of range", because the children
- // may not have been created yet, so the range check is handled
- // in commitSelectedIndex(), not here. Other calls to this setter
- // can change the proposed index before it is committed. Also,
- // childAddHandler() proposes a value of 0 when it creates the first
- // child, if no value has yet been proposed.
- proposedSelectedIndex = value;
- invalidateProperties();
-
- // Set a flag which will cause the HistoryManager to save state
- // the next time measure() is called.
- //if (historyManagementEnabled && _selectedIndex != -1 && !bInLoadState)
- // bSaveState = true;
-
- //dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
- }
-
- //--------------------------------------------------------------------------
- //
- // Event handlers
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- COMPILE::JS
- override public function addChildAt(item:IUIComponent, index:int):IUIComponent //(item:DisplayObject, index:int):DisplayObject
- {
- addingChildren = true;
- //var obj:DisplayObject = super.addChildAt(item, index);
- var obj:IUIComponent = super.addChildAt(item, index);
- //internalDispatchEvent(CollectionEventKind.ADD, obj, index);
- //childAddHandler(item);
- addingChildren = false;
- return obj;
- }
-
- //--------------------------------------------------------------------------
- //
- // IList Implementation
- // Viewstack implements IList so it can be plugged into a Spark ButtonBar
- //
- //--------------------------------------------------------------------------
-
- /**
- * @private
- * IList implementation of length returns numChildren
- */
- public function get length():int
- {
- return numChildren;
- }
-
-}
-
-}
-
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers
+{
+
+COMPILE::SWF
+{
+import flash.display.DisplayObject;
+import flash.events.Event;
+}
+
+//import mx.automation.IAutomationObject;
+import mx.core.Container;
+import mx.core.ContainerCreationPolicy;
+import mx.core.EdgeMetrics;
+import mx.core.IInvalidating;
+import mx.core.INavigatorContent;
+//import mx.core.ISelectableList;
+import mx.core.IUIComponent;
+import mx.core.ScrollPolicy;
+import mx.core.UIComponent;
+import mx.core.mx_internal;
+import mx.effects.Effect;
+//import mx.effects.EffectManager;
+//import mx.events.ChildExistenceChangedEvent;
+import mx.events.CollectionEvent;
+import mx.events.CollectionEventKind;
+import mx.events.EffectEvent;
+import mx.events.FlexEvent;
+import mx.events.IndexChangedEvent;
+import mx.events.PropertyChangeEvent;
+//import mx.geom.RoundedRectangle;
+//import mx.managers.HistoryManager;
+//import mx.managers.IHistoryManagerClient;
+
+use namespace mx_internal;
+
+//--------------------------------------
+// Events
+//--------------------------------------
+
+/**
+ * Dispatched when the selected child container changes.
+ *
+ * @eventType mx.events.IndexChangedEvent.CHANGE
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+[Event(name="change", type="mx.events.IndexChangedEvent")]
+
+//--------------------------------------
+// Styles
+//--------------------------------------
+
+//include "../styles/metadata/GapStyles.as"
+
+/**
+ * Number of pixels between the container's bottom border and its content area.
+ * The default value is 0.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingBottom", type="Number", format="Length", inherit="no")]
+
+/**
+ * Number of pixels between the container's top border and its content area.
+ * The default value is 0.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+//[Style(name="paddingTop", type="Number", format="Length", inherit="no")]
+
+//--------------------------------------
+// Excluded APIs
+//--------------------------------------
+
+[Exclude(name="autoLayout", kind="property")]
+[Exclude(name="defaultButton", kind="property")]
+[Exclude(name="horizontalLineScrollSize", kind="property")]
+[Exclude(name="horizontalPageScrollSize", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="horizontalScrollPosition", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="verticalLineScrollSize", kind="property")]
+[Exclude(name="verticalPageScrollSize", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+[Exclude(name="verticalScrollPosition", kind="property")]
+
+[Exclude(name="focusIn", kind="event")]
+[Exclude(name="focusOut", kind="event")]
+[Exclude(name="scroll", kind="event")]
+
+[Exclude(name="focusBlendMode", kind="style")]
+[Exclude(name="focusSkin", kind="style")]
+[Exclude(name="focusThickness", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+
+//--------------------------------------
+// Other metadata
+//--------------------------------------
+
+//[IconFile("ViewStack.png")]
+
+/**
+ * An MX ViewStack navigator container consists of a collection of child
+ * containers stacked on top of each other, where only one child
+ * at a time is visible.
+ * When a different child container is selected, it seems to replace
+ * the old one because it appears in the same location.
+ * However, the old child container still exists; it is just invisible.
+ *
+ * <p><b>Note:</b> The direct children of an MX navigator container must be
+ * MX containers, either MX layout or MX navigator containers,
+ * or the Spark NavigatorContent container.
+ * You cannot directly nest a control or a Spark container
+ * other than the Spark NavigatorContent container within a navigator;
+ * they must be children of an child MX container.</p>
+ *
+ * <p>A ViewStack container does not provide a user interface
+ * for selecting which child container is currently visible.
+ * Typically, you set its <code>selectedIndex</code> or
+ * <code>selectedChild</code> property in ActionScript in response to
+ * some user action.
+ * Alternately, you can associate an MX LinkBar, TabBar, ButtonBar, or ToggleButtonBar
+ * control or a Spark ButtonBar control with a ViewStack container to provide a navigation interface.
+ * To do so, specify the ViewStack container as the value of the
+ * <code>dataProvider</code> property of the LinkBar, TabBar or
+ * ToggleButtonBar container.</p>
+ *
+ * <p>You might decide to use a more complex navigator container than the
+ * ViewStack container, such as a TabNavigator container or Accordion
+ * container. In addition to having a collection of child containers,
+ * these containers provide their own user interface controls
+ * for navigating between their children.</p>
+ *
+ * <p>When you change the currently visible child container,
+ * you can use the <code>hideEffect</code> property of the container being
+ * hidden and the <code>showEffect</code> property of the newly visible child
+ * container to apply an effect to the child containers.
+ * The ViewStack container waits for the <code>hideEffect</code> of the child
+ * container being hidden to complete before it reveals the new child
+ * container.
+ * You can interrupt a currently playing effect if you change the
+ * <code>selectedIndex</code> property of the ViewStack container
+ * while an effect is playing.</p>
+ *
+ * <p>The ViewStack container has the following default sizing characteristics:</p>
+ * <table class="innertable">
+ * <tr>
+ * <th>Characteristic</th>
+ * <th>Description</th>
+ * </tr>
+ * <tr>
+ * <td>Default size</td>
+ * <td>The width and height of the initial active child.</td>
+ * </tr>
+ * <tr>
+ * <td>Container resizing rules</td>
+ * <td>By default, ViewStack containers are sized only once to fit the size of the
+ * first child container. They do not resize when you navigate to other child
+ * containers. To force ViewStack containers to resize when you navigate
+ * to a different child container, set the resizeToContent property to true.</td>
+ * </tr>
+ * <tr>
+ * <td>Child sizing rules</td>
+ * <td>Children are sized to their default size. If the child is larger than the ViewStack
+ * container, it is clipped. If the child is smaller than the ViewStack container,
+ * it is aligned to the upper-left corner of the ViewStack container.</td>
+ * </tr>
+ * <tr>
+ * <td>Default padding</td>
+ * <td>0 pixels for top, bottom, left, and right values.</td>
+ * </tr>
+ * </table>
+ *
+ * @mxml
+ *
+ * <p>The <code><mx:ViewStack></code> tag inherits the
+ * tag attributes of its superclass, with the exception of scrolling-related
+ * attributes, and adds the following tag attributes:</p>
+ *
+ * <pre>
+ * <mx:ViewStack
+ * <b>Properties</b>
+ * historyManagementEnabled="false|true"
+ * resizeToContent="false|true"
+ * selectedIndex="0"
+ *
+ * <b>Styles</b>
+ * horizontalGap="8"
+ * paddingBottom="0"
+ * paddingTop="0"
+ * verticalGap="6"
+ *
+ * <b>Events</b>
+ * change="<i>No default</i>"
+ * >
+ * ...
+ * <i>child tags</i>
+ * ...
+ * </mx:ViewStack>
+ * </pre>
+ *
+ * @includeExample examples/ViewStackExample.mxml
+ *
+ * @see mx.controls.LinkBar
+ * @see mx.controls.ButtonBar
+ * @see mx.controls.TabBar
+ * @see mx.controls.ToggleButtonBar
+ * @see spark.components.ButtonBar
+ * @see mx.managers.HistoryManager
+ * @see mx.managers.LayoutManager
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class ViewStack extends Container // implements IHistoryManagerClient, ISelectableList
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function ViewStack()
+ {
+ super();
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Variables
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ */
+ private var needToInstantiateSelectedChild:Boolean = false;
+
+ /**
+ * @private
+ * This flag gets set when selectedIndex is set.
+ * Later, when measure()
+ * is called, it causes the HistoryManager to save the state.
+ */
+ private var bSaveState:Boolean = false;
+
+ /**
+ * @private
+ * This flag gets set by loadState().
+ * It prevents the newly restored state from being saved.
+ */
+ private var bInLoadState:Boolean = false;
+
+ /**
+ * @private
+ * True until commitProperties has been called at least once.
+ */
+ private var firstTime:Boolean = true;
+
+ /**
+ * @private
+ * We'll measure ourselves once and then store the results here
+ * for the lifetime of the ViewStack
+ */
+ mx_internal var vsMinWidth:Number;
+ mx_internal var vsMinHeight:Number;
+ mx_internal var vsPreferredWidth:Number;
+ mx_internal var vsPreferredHeight:Number;
+
+ /**
+ * @private
+ * Remember which child has an overlay mask, if any.
+ * Used for the dissolve effect.
+ */
+ private var effectOverlayChild:UIComponent;
+
+ /**
+ * @private
+ * Keep track of the overlay's targetArea
+ * Used for the dissolve effect.
+ */
+ //private var effectOverlayTargetArea:RoundedRectangle;
+
+ /**
+ * @private
+ * Store the last selectedIndex
+ */
+ private var lastIndex:int = -1;
+
+ /**
+ * @private
+ * Whether a change event has to be dispatched in commitProperties()
+ */
+ private var dispatchChangeEventPending:Boolean = false;
+
+ /**
+ * @private
+ * If we're in the middle of adding a child
+ */
+ private var addingChildren:Boolean = false;
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // autoLayout
+ //----------------------------------
+
+ /**
+ * @private
+ * autoLayout is always true for ViewStack.
+ override public function get autoLayout():Boolean
+ {
+ return true;
+ }
+ */
+
+ /**
+ * @private
+ * autoLayout is always true for ViewStack
+ * and can't be changed by this setter.
+ *
+ * We can probably find a way to make autoLayout work with Accordion
+ * and ViewStack, but right now there are problems if deferred
+ * instantiation runs at the same time as an effect. (Bug 79174)
+ override public function set autoLayout(value:Boolean):void
+ {
+ }
+ */
+
+ //----------------------------------
+ // horizontalScrollPolicy
+ //----------------------------------
+
+ [Inspectable(environment="none")]
+
+ /**
+ * @private
+ * horizontalScrollPolicy is always OFF for ViewStack.
+ override public function get horizontalScrollPolicy():String
+ {
+ return ScrollPolicy.OFF;
+ }
+ */
+
+ /**
+ * @private
+ * horizontalScrollPolicy is always OFF for ViewStack
+ * and can't be changed by this setter.
+ override public function set horizontalScrollPolicy(value:String):void
+ {
+ }
+ */
+
+ //----------------------------------
+ // verticalScrollPolicy
+ //----------------------------------
+
+ [Inspectable(environment="none")]
+
+ /**
+ * @private
+ * verticalScrollPolicy is always OFF for ViewStack.
+ override public function get verticalScrollPolicy():String
+ {
+ return ScrollPolicy.OFF;
+ }
+ */
+
+ /**
+ * @private
+ * verticalScrollPolicy is always OFF for ViewStack
+ * and can't be changed by this setter.
+ override public function set verticalScrollPolicy(value:String):void
+ {
+ }
+ */
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // contentHeight
+ //----------------------------------
+
+ /**
+ * The height of the area, in pixels, in which content is displayed.
+ * You can override this getter if your content
+ * does not occupy the entire area of the ViewStack container.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function get contentHeight():Number
+ {
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+ return unscaledHeight - vm.top - vm.bottom;
+ }
+
+ //----------------------------------
+ // contentWidth
+ //----------------------------------
+
+ /**
+ * The width of the area, in pixels, in which content is displayed.
+ * You can override this getter if your content
+ * does not occupy the entire area of the ViewStack container.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function get contentWidth():Number
+ {
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+ return unscaledWidth - vm.left - vm.right;
+ }
+
+ //----------------------------------
+ // contentX
+ //----------------------------------
+
+ /**
+ * The x coordinate of the area of the ViewStack container
+ * in which content is displayed, in pixels.
+ * The default value is equal to the value of the
+ * <code>paddingLeft</code> style property,
+ * which has a default value of 0.
+ *
+ * Override the <code>get()</code> method if you do not want
+ * your content to start layout at x = 0.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function get contentX():Number
+ {
+ return getStyle("paddingLeft");
+ }
+
+ //----------------------------------
+ // contentY
+ //----------------------------------
+
+ /**
+ * The y coordinate of the area of the ViewStack container
+ * in which content is displayed, in pixels.
+ * The default value is equal to the value of the
+ * <code>paddingTop</code> style property,
+ * which has a default value of 0.
+ *
+ * Override the <code>get()</code> method if you do not want
+ * your content to start layout at y = 0.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function get contentY():Number
+ {
+ return getStyle("paddingTop");
+ }
+
+ //----------------------------------
+ // historyManagementEnabled
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the historyManagementEnabled property.
+ */
+ //mx_internal var _historyManagementEnabled:Boolean = false;
+
+ /**
+ * @private
+ */
+ //private var historyManagementEnabledChanged:Boolean = false;
+
+ [Inspectable(defaultValue="true")]
+
+ /**
+ * If <code>true</code>, enables history management
+ * within this ViewStack container.
+ * As the user navigates from one child to another,
+ * the browser remembers which children were visited.
+ * The user can then click the browser's Back and Forward buttons
+ * to move through this navigation history.
+ *
+ * @default false
+ *
+ * @see mx.managers.HistoryManager
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ public function get historyManagementEnabled():Boolean
+ {
+ return _historyManagementEnabled;
+ }
+ */
+
+ /**
+ * @private
+ public function set historyManagementEnabled(value:Boolean):void
+ {
+ if (value != _historyManagementEnabled)
+ {
+ _historyManagementEnabled = value;
+ historyManagementEnabledChanged = true;
+
+ invalidateProperties();
+ }
+ }
+ */
+
+ //----------------------------------
+ // resizeToContent
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the resizeToContent property.
+ */
+ private var _resizeToContent:Boolean = false;
+
+ /**
+ * If <code>true</code>, the ViewStack container automatically
+ * resizes to the size of its current child.
+ *
+ * @default false
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get resizeToContent():Boolean
+ {
+ return _resizeToContent;
+ }
+
+ /**
+ * @private
+ */
+ public function set resizeToContent(value:Boolean):void
+ {
+ if (value != _resizeToContent)
+ {
+ _resizeToContent = value;
+
+ if (value)
+ invalidateSize();
+ }
+ }
+
+ //----------------------------------
+ // selectedChild
+ //----------------------------------
+
+ [Bindable("valueCommit")]
+ [Bindable("creationComplete")]
+
+ /**
+ * A reference to the currently visible child container.
+ * The default is a reference to the first child.
+ * If there are no children, this property is <code>null</code>.
+ *
+ * <p><strong>Note:</strong> You can only set this property in an
+ * ActionScript statement, not in MXML.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get selectedChild():INavigatorContent
+ {
+ if (selectedIndex == -1)
+ return null;
+
+ return INavigatorContent(getChildAt(selectedIndex));
+ }
+
+ /**
+ * @private
+ */
+ public function set selectedChild(
+ value:INavigatorContent):void
+ {
+ var newIndex:int = getChildIndex(ROYALE::DISPLAYOBJECT(value));
+
+ if (newIndex >= 0 && newIndex < numChildren)
+ selectedIndex = newIndex;
+ }
+
+ //----------------------------------
+ // selectedIndex
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the selectedIndex property.
+ */
+ private var _selectedIndex:int = -1;
+
+ /**
+ * @private
+ */
+ private var proposedSelectedIndex:int = -1;
+
+ /**
+ * @private
+ */
+ private var initialSelectedIndex:int = -1;
+
+ [Bindable("change")]
+ [Bindable("valueCommit")]
+ [Bindable("creationComplete")]
+ [Inspectable(category="General")]
+
+ /**
+ * The zero-based index of the currently visible child container.
+ * Child indexes are in the range 0, 1, 2, ..., n - 1,
+ * where <i>n</i> is the number of children.
+ * The default value is 0, corresponding to the first child.
+ * If there are no children, the value of this property is <code>-1</code>.
+ *
+ * <p><strong>Note:</strong> When you add a new child to a ViewStack
+ * container, the <code>selectedIndex</code> property is automatically
+ * adjusted, if necessary, so that the selected child remains selected.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get selectedIndex():int
+ {
+ return proposedSelectedIndex == -1 ?
+ _selectedIndex :
+ proposedSelectedIndex;
+ }
+
+ /**
+ * @private
+ */
+ public function set selectedIndex(value:int):void
+ {
+ // Bail if the index isn't changing.
+ if (value == selectedIndex)
+ return;
+
+ // ignore, probably coming from tabbar
+ if (addingChildren)
+ return;
+
+ // Propose the specified value as the new value for selectedIndex.
+ // It gets applied later when measure() calls commitSelectedIndex().
+ // The proposed value can be "out of range", because the children
+ // may not have been created yet, so the range check is handled
+ // in commitSelectedIndex(), not here. Other calls to this setter
+ // can change the proposed index before it is committed. Also,
+ // childAddHandler() proposes a value of 0 when it creates the first
+ // child, if no value has yet been proposed.
+ proposedSelectedIndex = value;
+ invalidateProperties();
+
+ // Set a flag which will cause the HistoryManager to save state
+ // the next time measure() is called.
+ // if (historyManagementEnabled && _selectedIndex != -1 && !bInLoadState)
+ // bSaveState = true;
+
+ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: UIComponent
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ override protected function generateMXMLInstances(document:Object, data:Array, recursive:Boolean = true):void
+ {
+ // in theory, creationpolicy gets applied later
+ super.generateMXMLInstances(document, data, false);
+ }
+ */
+
+ /**
+ * @private
+ */
+ override protected function commitProperties():void
+ {
+ super.commitProperties();
+
+ /*
+ if (historyManagementEnabledChanged)
+ {
+ if (historyManagementEnabled)
+ HistoryManager.register(this);
+ else
+ HistoryManager.unregister(this);
+
+ historyManagementEnabledChanged = false;
+ }
+ */
+
+ if (proposedSelectedIndex != -1)
+ {
+ commitSelectedIndex(proposedSelectedIndex);
+ proposedSelectedIndex = -1;
+ }
+
+ if (needToInstantiateSelectedChild)
+ {
+ instantiateSelectedChild();
+ needToInstantiateSelectedChild = false;
+ }
+
+ // Dispatch the change event only after the child has been
+ // instantiated.
+ if (dispatchChangeEventPending)
+ {
+ dispatchChangeEvent(lastIndex, selectedIndex);
+ dispatchChangeEventPending = false;
+ }
+
+ if (firstTime)
+ {
+ firstTime = false;
+
+ // Add "addedToStage" and "removedFromStage" listeners so we can
+ // register/un-register from the history manager when this component
+ // is added or removed from the display list.
+ COMPILE::SWF
+ {
+ addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler, false, 0, true);
+ addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler, false, 0, true);
+ }
+ }
+
+ }
+
+ /**
+ * Calculates the default sizes and minimum and maximum values of the
+ * ViewStack container.
+ * For more information about the <code>measure()</code> method,
+ * see the <code>UIComponent.measure()</code> method.
+ *
+ * <p>The default size of a ViewStack container is the default size
+ * of its currently selected child, plus the padding and borders.
+ * If the ViewStack container has no children, its default size
+ * is just large enough for its padding and borders.</p>
+ *
+ * <p>The minimum size of a ViewStack container is the minimum size
+ * of its currently selected child, plus the padding and borders.
+ * If the ViewStack container has no children, its minimum size
+ * is just large enough for its padding and borders.</p>
+ *
+ * <p>This method does not change the maximum size of a ViewStack
+ * container - it remains unbounded.</p>
+ *
+ * @see mx.core.UIComponent#measure()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function measure():void
+ {
+ super.measure();
+
+ // A ViewStack measures itself based only on its selectedChild.
+ // The minimum, maximum, and preferred sizes are those of the
+ // selected child, plus the borders and margins.
+ var minWidth:Number = 0;
+ var minHeight:Number = 0;
+ var preferredWidth:Number = 0;
+ var preferredHeight:Number = 0;
+
+ // Only measure once. Thereafter, we'll just use cached values.
+ //
+ // We need to copy the cached values into the measured fields
+ // again to handle the case where scaleX or scaleY is not 1.0.
+ // When the ViewStack is zoomed, code in UIComponent.measureSizes
+ // scales the measuredWidth/Height values every time that
+ // measureSizes is called. (bug 100749)
+ if (vsPreferredWidth && !_resizeToContent)
+ {
+ measuredMinWidth = vsMinWidth;
+ measuredMinHeight = vsMinHeight;
+ measuredWidth = vsPreferredWidth;
+ measuredHeight = vsPreferredHeight;
+ return;
+ }
+
+ if (numChildren > 0 && selectedIndex != -1)
+ {
+ var child:UIComponent =
+ UIComponent(getChildAt(selectedIndex));
+
+ minWidth = child.minWidth;
+ preferredWidth = child.getExplicitOrMeasuredWidth();
+
+ minHeight = child.minHeight;
+ preferredHeight = child.getExplicitOrMeasuredHeight();
+ }
+
+ var vm:EdgeMetrics = viewMetricsAndPadding;
+
+ var wPadding:Number = vm.left + vm.right;
+ minWidth += wPadding;
+ preferredWidth += wPadding;
+
+ var hPadding:Number = vm.top + vm.bottom;
+ minHeight += hPadding;
+ preferredHeight += hPadding;
+
+ measuredMinWidth = minWidth;
+ measuredMinHeight = minHeight;
+ measuredWidth = preferredWidth;
+ measuredHeight = preferredHeight;
+
+ // If we're called before instantiateSelectedChild, then bail.
+ // We'll be called again later (instantiateSelectedChild calls
+ // invalidateSize), and we don't want to load values into the
+ // cache until we're fully initialized. (bug 102639)
+ // This check was moved from the beginning of this function to
+ // here to fix bug 103665.
+ //if (selectedChild && INavigatorContent(selectedChild).deferredContentCreated == false)
+ // return;
+
+ // Don't remember sizes if we don't have any children
+ if (numChildren == 0)
+ return;
+
+ vsMinWidth = minWidth;
+ vsMinHeight = minHeight;
+ vsPreferredWidth = preferredWidth;
+ vsPreferredHeight = preferredHeight;
+ }
+
+ /**
+ * Responds to size changes by setting the positions and sizes
+ * of this container's children.
+ * For more information about the <code>updateDisplayList()</code> method,
+ * see the <code>UIComponent.updateDisplayList()</code> method.
+ *
+ * <p>Only one of its children is visible at a time, therefore,
+ * a ViewStack container positions and sizes only that child.</p>
+ *
+ * <p>The selected child is positioned in the ViewStack container's
+ * upper-left corner, and allows for the ViewStack container's
+ * padding and borders. </p>
+ *
+ * <p>If the selected child has a percentage <code>width</code> or
+ * <code>height</code> value, it is resized in that direction
+ * to fill the specified percentage of the ViewStack container's
+ * content area (i.e., the region inside its padding).</p>
+ *
+ * @param unscaledWidth Specifies the width of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleX</code> property of the component.
+ *
+ * @param unscaledHeight Specifies the height of the component, in pixels,
+ * in the component's coordinates, regardless of the value of the
+ * <code>scaleY</code> property of the component.
+ *
+ * @see mx.core.UIComponent#updateDisplayList()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ override protected function updateDisplayList(unscaledWidth:Number,
+ unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ var nChildren:int = numChildren;
+ var w:Number = contentWidth;
+ var h:Number = contentHeight;
+ var left:Number = contentX;
+ var top:Number = contentY;
+
+ // Stretch the selectedIndex to fill our size
+ if (selectedIndex != -1)
+ {
+ var child:UIComponent =
+ UIComponent(getChildAt(selectedIndex));
+
+ var newWidth:Number = w;
+ var newHeight:Number = h;
+
+ if (!isNaN(child.percentWidth))
+ {
+ if (newWidth > child.maxWidth)
+ newWidth = child.maxWidth;
+ }
+ else
+ {
+ if (newWidth > child.explicitWidth)
+ newWidth = child.explicitWidth;
+ }
+
+ if (!isNaN(child.percentHeight))
+ {
+ if (newHeight > child.maxHeight)
+ newHeight = child.maxHeight;
+ }
+ else
+ {
+ if (newHeight > child.explicitHeight)
+ newHeight = child.explicitHeight;
+ }
+
+ // Don't send events for the size/move. The set visible below
+ if (child.width != newWidth || child.height != newHeight)
+ child.setActualSize(newWidth, newHeight);
+ if (child.x != left || child.y != top)
+ child.move(left, top);
+
+ // Now that the child is properly sized and positioned it
+ // can be shown.
+ child.visible = true;
+ }
+ }
+
+ /**
+ * @private
+ * When asked to create an overlay mask, create it on the selected child
+ * instead. That way, the chrome around the edge of the ViewStack
+ * (e.g. the tabs in a TabNavigator) is not occluded by the overlay mask
+ * (Bug 99029)
+ override mx_internal function addOverlay(color:uint,
+ targetArea:RoundedRectangle = null):void
+ {
+ // As we're switching the currently-selected child, don't
+ // allow two children to both have an overlay at the same time.
+ // This is done because it makes accounting a headache. If there's
+ // a legitimate reason why two children both need overlays, this
+ // restriction could be relaxed.
+ if (effectOverlayChild)
+ removeOverlay();
+
+ // Remember which child has an overlay, so that we don't inadvertently
+ // create an overlay on one child and later try to remove the overlay
+ // of another child. (bug 100731)
+ effectOverlayChild = (selectedChild as UIComponent);
+ if (!effectOverlayChild)
+ return;
+
+ effectOverlayColor = color;
+ effectOverlayTargetArea = targetArea;
+
+ if (selectedChild &&
+ selectedChild.deferredContentCreated == false)
+ // No children have been created
+ {
+ // Wait for the childrenCreated event before creating the overlay
+ selectedChild.addEventListener(FlexEvent.INITIALIZE,
+ initializeHandler);
+ }
+ else // Children already exist
+ {
+ initializeHandler(null);
+ }
+ }
+ */
+
+ /**
+ * @private
+ override mx_internal function removeOverlay():void
+ {
+ if (effectOverlayChild)
+ {
+ UIComponent(effectOverlayChild).removeOverlay();
+ effectOverlayChild = null;
+ }
+ }
+ */
+
+ //--------------------------------------------------------------------------
+ //
+ // Overridden methods: Container
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ override mx_internal function setActualCreationPolicies(policy:String):void
+ {
+ super.setActualCreationPolicies(policy);
+
+ // If the creation policy is switched to ContainerCreationPolicy.ALL
+ // and our createComponentsFromDescriptors() method has already been
+ // called (we've created our children but not all our grandchildren),
+ // then create all our grandchildren now. (Bug 99160)
+ if (policy == ContainerCreationPolicy.ALL && numChildren > 0)
+ {
+ for (var i:int = 0; i < numChildren; i++)
+ {
+ var containerChild:INavigatorContent =
+ getChildAt(i) as INavigatorContent;
+
+ if (containerChild && containerChild.deferredContentCreated == false)
+ containerChild.createDeferredContent();
+ }
+ }
+ }
+ */
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods: IHistoryManagerClient
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @copy mx.managers.IHistoryManagerClient#saveState()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function saveState():Object
+ {
+ var index:int = _selectedIndex == -1 ? 0 : _selectedIndex;
+ return { selectedIndex: index };
+ }
+
+ /**
+ * @copy mx.managers.IHistoryManagerClient#loadState()
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function loadState(state:Object):void
+ {
+ var newIndex:int = state ? int(state.selectedIndex) : 0;
+
+ if (newIndex == -1)
+ newIndex = initialSelectedIndex;
+
+ if (newIndex == -1)
+ newIndex = 0;
+
+ if (newIndex != _selectedIndex)
+ {
+ // When loading a new state, we don't want to
+ // save our current state in the history stack.
+ bInLoadState = true;
+ selectedIndex = newIndex;
+ bInLoadState = false;
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Methods
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Commits the selected index. This function is called during the commit
+ * properties phase when the <code>selectedIndex</code> or
+ * <code>selectedItem</code> property changes.
+ *
+ * @param newIndex The selected index.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ protected function commitSelectedIndex(newIndex:int):void
+ {
+ // The selectedIndex must be -1 if there are no children,
+ // even if a selectedIndex has been proposed.
+ if (numChildren == 0)
+ {
+ _selectedIndex = -1;
+ return;
+ }
+
+ // If there are children, ensure that the new index is in bounds.
+ if (newIndex < 0)
+ newIndex = 0;
+ else if (newIndex > numChildren - 1)
+ newIndex = numChildren - 1;
+
+ // Stop all currently playing effects
+ /*
+ if (lastIndex != -1 && lastIndex < numChildren)
+ UIComponent(getChildAt(lastIndex)).endEffectsStarted();
+
+ if (_selectedIndex != -1)
+ (selectedChild as UIComponent).endEffectsStarted();
+ */
+
+ // Remember the old index.
+ lastIndex = _selectedIndex;
+
+ // Bail if the index isn't changing.
+ if (newIndex == lastIndex)
+ return;
+
+ // Commit the new index.
+ _selectedIndex = newIndex;
+
+ // Remember our initial selected index so we can
+ // restore to our default state when the history
+ // manager requests it.
+ if (initialSelectedIndex == -1)
+ initialSelectedIndex = _selectedIndex;
+
+ // Only dispatch a change event if we're going to and from
+ // a valid index
+ if (lastIndex != -1 && newIndex != -1)
+ dispatchChangeEventPending = true;
+
+ var listenForEffectEnd:Boolean = false;
+
+ if (lastIndex != -1 && lastIndex < numChildren)
+ {
+ var currentChild:UIComponent = UIComponent(getChildAt(lastIndex));
+
+ currentChild.setVisible(false); // Hide the current child
+
+ /*
+ if (currentChild.getStyle("hideEffect"))
+ {
+ var hideEffect:Effect = EffectManager.lastEffectCreated; // This should be the hideEffect
+
+ if (hideEffect)
+ {
+ hideEffect.addEventListener(EffectEvent.EFFECT_END, hideEffectEndHandler);
+ listenForEffectEnd = true;
+ }
+ }
+ */
+ }
+
+ // If we don't have to wait for a hide effect to finish
+ if (!listenForEffectEnd)
+ hideEffectEndHandler(null);
+ }
+
+ private function hideEffectEndHandler(event:EffectEvent):void
+ {
+ if (event)
+ event.currentTarget.removeEventListener(EffectEvent.EFFECT_END, hideEffectEndHandler);
+
+ // Give any change handlers a chance to act before we
+ // instantiate our pane (which eats up all the processing cycles)
+ needToInstantiateSelectedChild = true;
+ invalidateProperties();
+
+ /*
+ if (bSaveState)
+ {
+ HistoryManager.save();
+ bSaveState = false;
+ }
+ */
+ }
+
+ /**
+ * @private
+ */
+ private function instantiateSelectedChild():void
+ {
+ if (!selectedChild)
+ return;
+
+ /*
+ // Performance optimization: don't call createComponents if we know
+ // that createComponents has already been called.
+ if (selectedChild && selectedChild.deferredContentCreated == false)
+ {
+ if (initialized) // Only listen if the ViewStack has already been initialized.
+ selectedChild.addEventListener(FlexEvent.CREATION_COMPLETE,childCreationCompleteHandler);
+ selectedChild.createDeferredContent();
+ }
+ */
+
+ // Do the initial measurement/layout pass for the
+ // newly-instantiated descendants.
+
+ if (selectedChild is IInvalidating)
+ IInvalidating(selectedChild).invalidateSize();
+
+ invalidateSize();
+ invalidateDisplayList();
+ }
+
+ /**
+ * @private
+ */
+ private function dispatchChangeEvent(oldIndex:int, newIndex:int):void
+ {
+ var event:IndexChangedEvent =
+ new IndexChangedEvent(IndexChangedEvent.CHANGE);
+ event.oldIndex = oldIndex;
+ event.newIndex = newIndex;
+ event.relatedObject = getChildAt(newIndex);
+ dispatchEvent(event);
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Event handlers
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * Handles "addedToStage" event
+ */
+ COMPILE::SWF
+ private function addedToStageHandler(event:Event):void
+ {
+ /*
+ if (historyManagementEnabled)
+ HistoryManager.register(this);
+ */
+ }
+
+ /**
+ * @private
+ * Handles "removedFromStage" event
+ */
+ COMPILE::SWF
+ private function removedFromStageHandler(event:Event):void
+ {
+ /*
+ HistoryManager.unregister(this);
+ */
+ }
+
+ /**
+ * @private
+ * Called when we are running a Dissolve effect
+ * and the initialize event has been dispatched
+ * or the children already exist
+ */
+ private function initializeHandler(event:FlexEvent):void
+ {
+ effectOverlayChild.removeEventListener(FlexEvent.INITIALIZE,
+ initializeHandler);
+
+ // UIComponent(effectOverlayChild).addOverlay(effectOverlayColor, effectOverlayTargetArea);
+ }
+
+ /**
+ * @private
+ * Handles when the new selectedChild has finished being created.
+ */
+ private function childCreationCompleteHandler(event:FlexEvent):void
+ {
+ event.target.removeEventListener(FlexEvent.CREATION_COMPLETE,childCreationCompleteHandler);
+ event.target.dispatchEvent(new FlexEvent(FlexEvent.SHOW));
+
+ }
+
+ /**
+ * @private
+ */
+ private function childAddHandler(child:ROYALE::DISPLAYOBJECT):void
+ {
+ var index:int = getChildIndex(child);
+
+ if (child is IUIComponent)
+ {
+ var uiChild:IUIComponent = IUIComponent(child);
+ // ViewStack creates all of its children initially invisible.
+ // They are made as they become the selected child.
+ uiChild.visible = false;
+ }
+ if (child is INavigatorContent)
+ {
+ child.addEventListener("labelChanged", navigatorChildChangedHandler);
+ child.addEventListener("iconChanged", navigatorChildChangedHandler);
+ }
+
+ // If we just created the first child and no selected index has
+ // been proposed, then propose this child to be selected.
+ if (numChildren == 1 && proposedSelectedIndex == -1)
+ {
+ _selectedIndex = 0;
+ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+ needToInstantiateSelectedChild = true;
+ invalidateProperties();
+ }
+ else if (index <= selectedIndex && numChildren > 1 && proposedSelectedIndex == -1)
+ {
+ _selectedIndex++;
+ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+ }
+
+ /*
+ if (child is IAutomationObject)
+ IAutomationObject(child).showInAutomationHierarchy = true;
+ */
+
+ }
+
+ /**
+ * @private
+ * When a child is removed, adjust the selectedIndex such that the current
+ * child remains selected; or if the current child was removed, then the
+ * next (or previous) child gets automatically selected; when the last
+ * remaining child is removed, the selectedIndex is set to -1.
+ */
+ private function childRemoveHandler(child:ROYALE::DISPLAYOBJECT, index:int):void
+ {
+ if (child is INavigatorContent)
+ {
+ child.removeEventListener("labelChanged", navigatorChildChangedHandler);
+ child.removeEventListener("iconChanged", navigatorChildChangedHandler);
+ }
+
+ // Handle the simple case.
+ if (index > selectedIndex)
+ return;
+
+ var currentSelectedIndex:int = selectedIndex;
+
+ // This matches one of the two conditions:
+ // 1. a view before the current was deleted, or
+ // 2. the current view was deleted and it was also
+ // at the end of the stack.
+ // In both cases, we need to decrement selectedIndex.
+ if (index < currentSelectedIndex ||
+ currentSelectedIndex == numChildren)
+ {
+ // If the selectedIndex was already 0, it should go to -1.
+ // -1 is a special value; in order to avoid runtime errors
+ // in various methods, we need to skip the range checking in
+ // commitSelectedIndex() and set _selectedIndex explicitly here.
+ if (currentSelectedIndex == 0)
+ {
+ _selectedIndex = -1;
+ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+ }
+ else
+ {
+ _selectedIndex--;
+ dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
+ }
+ }
+ else if (index == currentSelectedIndex)
+ {
+ // If we're deleting the currentSelectedIndex and there is another
+ // child after it, it will become the new selected child so we
+ // need to make sure it is instantiated.
+ needToInstantiateSelectedChild = true;
+ invalidateProperties();
+ }
+ }
+
+
+ /**
+ * @private
+ */
+ override public function addChildAt(item:ROYALE::DISPLAYOBJECT, index:int):ROYALE::DISPLAYOBJECT
+ {
+ addingChildren = true;
+ var obj:ROYALE::DISPLAYOBJECT = super.addChildAt(item, index);
+ internalDispatchEvent(CollectionEventKind.ADD, obj, index);
+ childAddHandler(item);
+ addingChildren = false;
+ return obj;
+ }
+
+ /**
+ * @private
+ */
+ override public function removeChild(item:ROYALE::DISPLAYOBJECT):ROYALE::DISPLAYOBJECT
+ {
+ var index:int = getChildIndex(item);
+ var obj:ROYALE::DISPLAYOBJECT = super.removeChild(item);
+ internalDispatchEvent(CollectionEventKind.REMOVE, obj, index);
+ childRemoveHandler(item, index);
+ return obj;
+ }
+
+ /**
+ * @private
+ override public function removeAllChildren():void
+ {
+ super.removeAllChildren();
+ internalDispatchEvent(CollectionEventKind.RESET);
+ }
+ */
+
+ //--------------------------------------------------------------------------
+ //
+ // IList Implementation
+ // Viewstack implements IList so it can be plugged into a Spark ButtonBar
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * @private
+ * The IList implementation dispatches change events when
+ * label or icon properties change.
+ */
+ private function navigatorChildChangedHandler(event:Event):void
+ {
+ var pe:PropertyChangeEvent = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+ pe.source = event.target;
+ pe.property = (event.type == "labelChanged") ? "label" : "icon";
+
+ internalDispatchEvent(CollectionEventKind.UPDATE, pe, getChildIndex(event.target as ROYALE::DISPLAYOBJECT));
+ }
+
+ /**
+ * Dispatches a collection event with the specified information.
+ *
+ * @param kind String indicates what the kind property of the event should be
+ * @param item Object reference to the item that was added or removed
+ * @param location int indicating where in the source the item was added.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ private function internalDispatchEvent(kind:String, item:Object = null, location:int = -1):void
+ {
+ if (hasEventListener(CollectionEvent.COLLECTION_CHANGE))
+ {
+ var event:CollectionEvent =
+ new CollectionEvent(CollectionEvent.COLLECTION_CHANGE);
+ event.kind = kind;
+ event.items.push(item);
+ event.location = location;
+ dispatchEvent(event);
+ }
+
+ // now dispatch a complementary PropertyChangeEvent
+ if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE) &&
+ (kind == CollectionEventKind.ADD || kind == CollectionEventKind.REMOVE))
+ {
+ var objEvent:PropertyChangeEvent =
+ new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+ objEvent.property = location;
+ if (kind == CollectionEventKind.ADD)
+ objEvent.newValue = item;
+ else
+ objEvent.oldValue = item;
+ dispatchEvent(objEvent);
+ }
+ }
+
+ /**
+ * @private
+ * IList implementation of length returns numChildren
+ */
+ public function get length():int
+ {
+ return numChildren;
+ }
+
+ /**
+ * @private
+ * IList implementation of addItem calls addChild
+ */
+ public function addItem(item:Object):void
+ {
+ addChild(item as ROYALE::DISPLAYOBJECT);
+ }
+
+ /**
+ * @private
+ * IList implementation of addItemAt calls addChildAt
+ */
+ public function addItemAt(item:Object, index:int):void
+ {
+ addChildAt(item as ROYALE::DISPLAYOBJECT, index);
+ }
+
+ /**
+ * @private
+ * IList implementation of getItemAt calls getChildAt
+ */
+ public function getItemAt(index:int, prefetch:int = 0):Object
+ {
+ return getChildAt(index);
+ }
+
+ /**
+ * @private
+ * IList implementation of getItemIndex calls getChildIndex
+ */
+ public function getItemIndex(item:Object):int
+ {
+ if (isValidChild(item as ROYALE::DISPLAYOBJECT))
+ return getChildIndex(item as ROYALE::DISPLAYOBJECT);
+ else
+ return -1;
+ }
+
+ private function isValidChild(child:ROYALE::DISPLAYOBJECT):Boolean {
+ for (var i:int = 0; i < numChildren; i++)
+ {
+ if (getChildAt(i) == child)
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @private
+ * IList implementation of itemUpdated doesn't do anything
+ */
+ public function itemUpdated(item:Object, property:Object = null,
+ oldValue:Object = null,
+ newValue:Object = null):void
+ {
+
+ }
+
+ /**
+ * @private
+ * IList implementation of removeAll calls removeAllChildren
+ */
+ public function removeAll():void
+ {
+ //removeAllChildren();
+ }
+
+ /**
+ * @private
+ * IList implementation of removeItem calls removeChild
+ */
+ public function removeItem(item:Object):Boolean
+ {
+ var displayObject:ROYALE::DISPLAYOBJECT = removeChild(item as ROYALE::DISPLAYOBJECT);
+ return displayObject != null;
+ }
+
+ /**
+ * @private
+ * IList implementation of removeItemAt calls removeChildAt
+ */
+ public function removeItemAt(index:int):Object
+ {
+ return removeChildAt(index);
+ }
+
+ /**
+ * @private
+ * IList implementation of setItemAt removes the old
+ * child and adds the new
+ */
+ public function setItemAt(item:Object, index:int):Object
+ {
+ var result:Object = removeChildAt(index);
+ addChildAt(item as ROYALE::DISPLAYOBJECT,index);
+ return result;
+ }
+
+ /**
+ * @private
+ * IList implementation of toArray returns array of children
+ */
+ public function toArray():Array
+ {
+ var result:Array = [];
+ for (var i:int =0;i<numChildren;i++)
+ {
+ result.push(getChildAt(i));
+ }
+ return result;
+ }
+
+
+}
+
+}
+
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/BoxLayout.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/BoxLayout.as
index 94492bd..bce2787 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/BoxLayout.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/beads/BoxLayout.as
@@ -415,7 +415,7 @@ package mx.containers.beads
/**
* @private
*/
- protected function widthPadding(numChildren:Number):Number
+ public function widthPadding(numChildren:Number):Number
{
var vm:EdgeMetrics = target.viewMetricsAndPadding;
var padding:Number = vm.left + vm.right;
@@ -432,7 +432,7 @@ package mx.containers.beads
/**
* @private
*/
- protected function heightPadding(numChildren:Number):Number
+ public function heightPadding(numChildren:Number):Number
{
var vm:EdgeMetrics = target.viewMetricsAndPadding;
var padding:Number = vm.top + vm.bottom;
@@ -451,7 +451,7 @@ package mx.containers.beads
* Returns a numeric value for the align setting.
* 0 = left/top, 0.5 = center, 1 = right/bottom
*/
- protected function getHorizontalAlignValue():Number
+ public function getHorizontalAlignValue():Number
{
var horizontalAlign:String = target.getStyle("horizontalAlign");
@@ -470,7 +470,7 @@ package mx.containers.beads
* Returns a numeric value for the align setting.
* 0 = left/top, 0.5 = center, 1 = right/bottom
*/
- protected function getVerticalAlignValue():Number
+ public function getVerticalAlignValue():Number
{
var verticalAlign:String = target.getStyle("verticalAlign");
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridColumnInfo.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridColumnInfo.as
index 0a6bf22..9cbf18c 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridColumnInfo.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridColumnInfo.as
@@ -29,12 +29,11 @@ import mx.core.UIComponent;
* @private
* Internal helper class used to exchange information between
* Grid and GridRow.
- * @royalesuppresspublicvarwarning
*/
public class GridColumnInfo extends FlexChildInfo
{
- /* include "../../core/Version.as";
- */
+// include "../../core/Version.as";
+
//--------------------------------------------------------------------------
//
// Constructor
@@ -47,7 +46,7 @@ public class GridColumnInfo extends FlexChildInfo
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
public function GridColumnInfo()
{
@@ -77,11 +76,9 @@ public class GridColumnInfo extends FlexChildInfo
* @langversion 3.0
* @playerversion Flash 9
* @playerversion AIR 1.1
- * @productversion Royale 0.9.3
+ * @productversion Flex 3
*/
public var x:Number;
-
-
}
}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridRowInfo.as b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridRowInfo.as
index dbb10cc..b765459 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridRowInfo.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/containers/gridClasses/GridRowInfo.as
@@ -1,156 +1,153 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-// 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 mx.containers.gridClasses
-{
-
-import mx.core.UIComponent;
-
-[ExcludeClass]
-
-/**
- * @private
- * Internal helper class used to exchange information between
- * Grid and GridRow.
- * @royalesuppresspublicvarwarning
- */
-
-public class GridRowInfo
-{
- /* include "../../core/Version.as";
- */
- //--------------------------------------------------------------------------
- //
- // Constructor
- //
- //--------------------------------------------------------------------------
-
- /**
- * Constructor.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public function GridRowInfo()
- {
- super();
-
- min = 0;
- preferred = 0;
- max = UIComponent.DEFAULT_MAX_HEIGHT;
- flex = 0;
- }
-
- //--------------------------------------------------------------------------
- //
- // Properties
- //
- //--------------------------------------------------------------------------
-
- //----------------------------------
- // flex
- //----------------------------------
-
- /**
- * Input: Measurement for the GridRow.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var flex:Number;
-
- //----------------------------------
- // height
- //----------------------------------
-
- /**
- * Output: The actual height of each row,
- * as determined by updateDisplayList().
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var height:Number;
-
- //----------------------------------
- // max
- //----------------------------------
-
- /**
- * Input: Measurement for the GridRow.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var max:Number;
-
- //----------------------------------
- // min
- //----------------------------------
-
- /**
- * Input: Measurement for the GridRow.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var min:Number;
-
- //----------------------------------
- // preferred
- //----------------------------------
-
- /**
- * Input: Measurement for the GridRow.
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var preferred:Number;
-
- //----------------------------------
- // y
- //----------------------------------
-
- /**
- * Output: The actual position of each row,
- * as determined by updateDisplayList().
- *
- * @langversion 3.0
- * @playerversion Flash 9
- * @playerversion AIR 1.1
- * @productversion Royale 0.9.3
- */
- public var y:Number;
-
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.containers.gridClasses
+{
+
+import mx.core.UIComponent;
+
+[ExcludeClass]
+
+/**
+ * @private
+ * Internal helper class used to exchange information between
+ * Grid and GridRow.
+ */
+public class GridRowInfo
+{
+// include "../../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function GridRowInfo()
+ {
+ super();
+
+ min = 0;
+ preferred = 0;
+ max = UIComponent.DEFAULT_MAX_HEIGHT;
+ flex = 0;
+ }
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // flex
+ //----------------------------------
+
+ /**
+ * Input: Measurement for the GridRow.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var flex:Number;
+
+ //----------------------------------
+ // height
+ //----------------------------------
+
+ /**
+ * Output: The actual height of each row,
+ * as determined by updateDisplayList().
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var height:Number;
+
+ //----------------------------------
+ // max
+ //----------------------------------
+
+ /**
+ * Input: Measurement for the GridRow.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var max:Number;
+
+ //----------------------------------
+ // min
+ //----------------------------------
+
+ /**
+ * Input: Measurement for the GridRow.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var min:Number;
+
+ //----------------------------------
+ // preferred
+ //----------------------------------
+
+ /**
+ * Input: Measurement for the GridRow.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var preferred:Number;
+
+ //----------------------------------
+ // y
+ //----------------------------------
+
+ /**
+ * Output: The actual position of each row,
+ * as determined by updateDisplayList().
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public var y:Number;
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/FormItemLabel.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/FormItemLabel.as
new file mode 100644
index 0000000..2cc041b
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/FormItemLabel.as
@@ -0,0 +1,70 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.controls
+{
+
+//--------------------------------------
+// Other metadata
+//--------------------------------------
+
+/**
+ * The FormItem container uses a FormItemLabel object to display the
+ * label portion of the FormItem container.
+ *
+ * <p>The FormItemLabel class does not add any functionality to its superclass, Label.
+ * Instead, its purpose is to let you set styles in a FormItemLabel type selector and
+ * set styles that affect the labels in all FormItem containers.</p>
+ *
+ * <p><strong>Note:</strong> This class has been deprecated.
+ * The recommended way to style a FormItem label is to use the
+ * <code>labelStyleName</code> style property of the FormItem class.</p>
+ *
+ * @see mx.containers.FormItem
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public class FormItemLabel extends Label
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Constructor
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Constructor.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function FormItemLabel()
+ {
+ super();
+ }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/ContainerCreationPolicy.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/ContainerCreationPolicy.as
new file mode 100644
index 0000000..7d37cc3
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/ContainerCreationPolicy.as
@@ -0,0 +1,109 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.core
+{
+
+/**
+ * The ContainerCreationPolicy class defines the constant values
+ * for the <code>creationPolicy</code> property of the Container class.
+ *
+ * @see mx.core.Container#creationPolicy
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public final class ContainerCreationPolicy
+{
+// include "../core/Version.as";
+
+ //--------------------------------------------------------------------------
+ //
+ // Class constants
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Delay creating some or all descendants until they are needed.
+ *
+ * <p>For example, if a navigator container such as a TabNavigator
+ * has this <code>creationPolicy</code>, it will immediately create
+ * all of its children, plus the descendants of the initially
+ * selected child.
+ * However, it will wait to create the descendants of the other children
+ * until the user navigates to them.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const AUTO:String = "auto";
+
+ /**
+ * Immediately create all descendants.
+ *
+ * <p>Avoid using this <code>creationPolicy</code> because
+ * it increases the startup time of your application.
+ * There is usually no good reason to create components at startup
+ * which the user cannot see.
+ * If you are using this policy so that you can "push" data into
+ * hidden components at startup, you should instead design your
+ * application so that the data is stored in data variables
+ * and components which are created later "pull" in this data,
+ * via databinding or an <code>initialize</code> handler.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const ALL:String = "all";
+
+ /**
+ * Add the container to a creation queue.
+ * Deprecated since Flex 4.0.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const QUEUED:String = "queued";
+
+ /**
+ * Do not create any children.
+ *
+ * <p>With this <code>creationPolicy</code>, it is the developer's
+ * responsibility to programmatically create the children
+ * from the UIComponentDescriptors by calling
+ * <code>createComponentsFromDescriptors()</code>
+ * on the parent container.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public static const NONE:String = "none";
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModule.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModule.as
new file mode 100644
index 0000000..a2afc00
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModule.as
@@ -0,0 +1,47 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.core
+{
+
+/**
+ * The IFlexModule interface is used as an optional contract with IFlexModuleFactory.
+ * When an IFlexModule instance is created with the IFlexModuleFactory, the factory
+ * stores a reference to itself after creation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IFlexModule
+{
+ /**
+ * @private
+ */
+ function set moduleFactory(factory:IFlexModuleFactory):void;
+
+ /**
+ * @private
+ */
+ function get moduleFactory():IFlexModuleFactory;
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as
new file mode 100644
index 0000000..d602759
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as
@@ -0,0 +1,153 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.core
+{
+
+/**
+ * The IFlexModuleFactory interface represents the contract expected
+ * for bootstrapping Flex applications and dynamically loaded
+ * modules.
+ *
+ * <p>Calling the <code>info()</code> method is legal immediately after
+ * the <code>complete</code> event is dispatched.</p>
+ *
+ * <p>A well-behaved module dispatches a <code>ready</code> event when
+ * it is safe to call the <code>create()</code> method.</p>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+public interface IFlexModuleFactory
+{
+
+ //--------------------------------------------------------------------------
+ //
+ // Properties
+ //
+ //--------------------------------------------------------------------------
+
+
+ /**
+ * A way to call a method in this IFlexModuleFactory's context
+ *
+ * @param fn The function or method to call.
+ * @param thisArg The <code>this</code> pointer for the function.
+ * @param argArray The arguments for the function.
+ * @param returns If <code>true</code>, the function returns a value.
+ *
+ * @return Whatever the function returns, if anything.
+ *
+ * @see Function.apply
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 3
+ */
+ function callInContext(fn:Function, thisArg:Object,
+ argArray:Array, returns:Boolean = true):*;
+
+ /**
+ * A factory method that requests
+ * an instance of a definition known to the module.
+ *
+ * <p>You can provide an optional set of parameters to let
+ * building factories change what they create based
+ * on the input.
+ * Passing <code>null</code> indicates that the default
+ * definition is created, if possible.</p>
+ *
+ * @param parameters An optional list of arguments. You can pass any number
+ * of arguments, which are then stored in an Array called <code>parameters</code>.
+ *
+ * @return An instance of the module, or <code>null</code>.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function create(... parameters):Object;
+
+ /**
+ * Get the implementation for an interface.
+ * Similar to <code>Singleton.getInstance()</code> method, but per-
+ * IFlexModuleFactory.
+ *
+ * @param interfaceName The interface.
+ *
+ * @return The implementation for the interface.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+ function getImplementation(interfaceName:String):Object;
+
+ /**
+ * Returns a block of key/value pairs
+ * that hold static data known to the module.
+ * This method always succeeds, but can return an empty object.
+ *
+ * @return An object containing key/value pairs. Typically, this object
+ * contains information about the module or modules created by this
+ * factory; for example:
+ *
+ * <pre>
+ * return {"description": "This module returns 42."};
+ * </pre>
+ *
+ * Other common values in the returned object include the following:
+ * <ul>
+ * <li><code>fonts</code>: A list of embedded font faces.</li>
+ * <li><code>rsls</code>: A list of run-time shared libraries.</li>
+ * <li><code>mixins</code>: A list of classes initialized at startup.</li>
+ * </ul>
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ function info():Object;
+
+ /**
+ * Register an implementation for an interface.
+ * Similar to the <code>Singleton.registerClass()</code> method, but per-
+ * IFlexModuleFactory, and takes an instance not a class.
+ *
+ * @param interfaceName The interface.
+ *
+ * @param impl The implementation.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+ function registerImplementation(interfaceName:String,
+ impl:Object):void;
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/INavigatorContent.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/INavigatorContent.as
new file mode 100644
index 0000000..79ca368
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/INavigatorContent.as
@@ -0,0 +1,68 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// 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 mx.core
+{
+//import mx.managers.IToolTipManagerClient;
+import org.apache.royale.events.IEventDispatcher
+
+/**
+ * The INavigatorContent interface defines the interface that a container must
+ * implement to be used as the child of a navigator container,
+ * such as the ViewStack, TabNavigator, and Accordion navigator containers.
+ *
+ * @see mx.containers.Accordion
+ * @see mx.containers.TabNavigator
+ * @see mx.containers.ViewStack
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+public interface INavigatorContent extends IEventDispatcher // IDeferredContentOwner, IToolTipManagerClient
+{
+ [Bindable("labelChanged")]
+ /**
+ * The text displayed by the navigator container for this container.
+ * For example, the text appears in the button area of an Accordion container
+ * and in the tab area of the TabNavigator container.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+ function get label():String;
+
+ [Bindable("iconChanged")]
+ /**
+ * The icon displayed by the navigator container for this container.
+ * The icon appears in the button area of an Accordion container
+ * and in the tab area of the TabNavigator container.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 10
+ * @playerversion AIR 1.5
+ * @productversion Flex 4
+ */
+ function get icon():Class;
+}
+
+}
\ No newline at end of file
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
index e1d731c..b88091e 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/UIComponent.as
@@ -423,7 +423,7 @@ public class UIComponent extends UIBase
IFlexDisplayObject,
IInvalidating,
IStatesObject,
- IUIComponent, IVisualElement
+ IUIComponent, IVisualElement, IFlexModule
{
//--------------------------------------------------------------------------
//
@@ -1324,6 +1324,79 @@ public class UIComponent extends UIBase
//--------------------------------------------------------------------------
//
+ // Properties: Modules
+ //
+ //--------------------------------------------------------------------------
+
+ //----------------------------------
+ // moduleFactory
+ //----------------------------------
+
+ /**
+ * @private
+ * Storage for the moduleFactory property.
+ */
+ private var _moduleFactory:IFlexModuleFactory;
+
+ [Inspectable(environment="none")]
+
+ /**
+ * A module factory is used as context for using embedded fonts and for
+ * finding the style manager that controls the styles for this
+ * component.
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function get moduleFactory():IFlexModuleFactory
+ {
+ return _moduleFactory;
+ }
+
+ /**
+ * @private
+ */
+ public function set moduleFactory(factory:IFlexModuleFactory):void
+ {
+ //_styleManager = null;
+
+ var n:int = numChildren;
+ for (var i:int = 0; i < n; i++)
+ {
+ var child:IFlexModule = getChildAt(i) as IFlexModule;
+ if (!child)
+ continue;
+
+ if (child.moduleFactory == null || child.moduleFactory == _moduleFactory)
+ {
+ child.moduleFactory = factory;
+ }
+ }
+ /*
+ if (advanceStyleClientChildren != null)
+ {
+ for (var styleClient:Object in advanceStyleClientChildren)
+ {
+ var iAdvanceStyleClientChild:IFlexModule = styleClient
+ as IFlexModule;
+
+ if (iAdvanceStyleClientChild &&
+ (iAdvanceStyleClientChild.moduleFactory == null
+ || iAdvanceStyleClientChild.moduleFactory == _moduleFactory))
+ {
+ iAdvanceStyleClientChild.moduleFactory = factory;
+ }
+ }
+ }*/
+ _moduleFactory = factory;
+
+ //setDeferredStyles();
+ }
+
+ //--------------------------------------------------------------------------
+ //
// Properties: MXML
//
//--------------------------------------------------------------------------
@@ -2073,7 +2146,7 @@ public class UIComponent extends UIBase
* @private
* Storage for the minWidth property.
*/
- private var _explicitMinWidth:Number;
+ protected var _explicitMinWidth:Number;
[Bindable("explicitMinWidthChanged")]
[Inspectable(environment="none")]
@@ -4296,6 +4369,40 @@ public class UIComponent extends UIBase
trace("owns not implemented");
return true;
}
+
+ /**
+ * Same as visible setter but does not dispatch events
+ *
+ * @langversion 3.0
+ * @playerversion Flash 9
+ * @playerversion AIR 1.1
+ * @productversion Flex 3
+ */
+ public function setVisible(value:Boolean):void
+ {
+ COMPILE::JS
+ {
+ var oldValue:Boolean = positioner.style.display !== 'none';
+ if (value !== oldValue)
+ {
+ if (!value)
+ {
+ displayStyleForLayout = positioner.style.display;
+ positioner.style.display = 'none';
+ }
+ else
+ {
+ if (displayStyleForLayout != null)
+ positioner.style.display = displayStyleForLayout;
+ }
+ }
+ }
+ COMPILE::SWF
+ {
+ super.visible = value;
+ }
+ }
+
}