You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jm...@apache.org on 2014/08/23 05:41:20 UTC
[34/51] [partial] trying to merge TourDeFlex develop release into
master
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/5ed4d983/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/source/HBaselineLayout.as.html
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/source/HBaselineLayout.as.html b/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/source/HBaselineLayout.as.html
index 9690a3f..7867059 100644
--- a/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/source/HBaselineLayout.as.html
+++ b/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/source/HBaselineLayout.as.html
@@ -23,185 +23,185 @@
<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/>
</head>
-<body><pre><span class="ActionScriptpackage">package</span> <span class="ActionScriptBracket/Brace">{</span>
-
-<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ILayoutElement</span>;
-<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">PropertyChangeEvent</span>;
-<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">formatters</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">NumberBase</span>;
-
-<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">spark</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">components</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">supportClasses</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">GroupBase</span>;
-<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">spark</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">layouts</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">HorizontalLayout</span>;
-
-<span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">HBaselineLayout</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">HorizontalLayout</span>
-<span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">HBaselineLayout</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">super</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptComment">//----------------------------------
-</span> <span class="ActionScriptComment">// globalBaseline
-</span> <span class="ActionScriptComment">//----------------------------------
-</span>
- <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
-
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NaN</span>;
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">globalBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Number</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">globalBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">_globalBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">target</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">invalidateSize</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">invalidateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptComment">//----------------------------------
-</span> <span class="ActionScriptComment">// actualBaseline
-</span> <span class="ActionScriptComment">//----------------------------------
-</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>:<span class="ActionScriptDefault_Text">Number</span>;
-
- <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Bindable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"propertyChange"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
- <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
-
- <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">actualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Number</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">setActualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">_actualBaseline</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptReserved">return</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">oldValue</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>;
- <span class="ActionScriptDefault_Text">_actualBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
- <span class="ActionScriptDefault_Text">dispatchEvent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">PropertyChangeEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">createUpdateEvent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"actualBaseline"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">oldValue</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptComment">//----------------------------------
-</span> <span class="ActionScriptComment">// verticalAlign
-</span> <span class="ActionScriptComment">//----------------------------------
-</span>
- <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">enumeration</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"top,bottom,middle,justify,contentJustify,baseline"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">defaultValue</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"top"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
- <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">verticalAlign</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">String</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">return</span> <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">verticalAlign</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptASDoc">/**
- * @private
- */</span>
- <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">measure</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">measure</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">target</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">verticalAlign</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptString">"baseline"</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptReserved">return</span>;
-
- <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">true</span> <span class="ActionScriptComment">/*usePreferredSize*/</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_globalBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
-
- <span class="ActionScriptComment">// The measured height is the sum of the space above and below the baseline
-</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingTop</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingTop</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingBottom</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingBottom</span>;
- <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">measuredHeight</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">round</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptASDoc">/**
- * @private
- */</span>
- <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">unscaledWidth</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">unscaledHeight</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">unscaledWidth</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">unscaledHeight</span><span class="ActionScriptBracket/Brace">)</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">target</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">verticalAlign</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptString">"baseline"</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptReserved">return</span>;
-
- <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">false</span> <span class="ActionScriptComment">/*usePreferredSize*/</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_globalBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
-
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingTop</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingTop</span>;
-
- <span class="ActionScriptComment">// Adjust the position of the elements
-</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">contentHeight</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">count</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">numElements</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">count</span>; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">element</span>:<span class="ActionScriptDefault_Text">ILayoutElement</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getElementAt</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">includeInLayout</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptReserved">continue</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baseline</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> 0;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">baselinePosition</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baselinePosition</span>;
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">y</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">baselinePosition</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setLayoutBoundsPosition</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsX</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">contentHeight</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">contentHeight</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptComment">// Adjust the content height
-</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingBottom</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">contentHeight</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingBottom</span>;
- <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setContentSize</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contentWidth</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">contentHeight</span><span class="ActionScriptBracket/Brace">)</span>;
-
- <span class="ActionScriptComment">// Update the baseline
-</span> <span class="ActionScriptDefault_Text">setActualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">measuredBaselineTop</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
-
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// How much space is needed above the baseline to fit all the elements
-</span> <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// How much space is needed below the baseline to fit all the elements
-</span>
- <span class="ActionScriptASDoc">/**
- * @private
- */</span>
- <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">usePreferredSize</span>:<span class="ActionScriptDefault_Text">Boolean</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The current element's explicit baseline constraint
-</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaselineTop</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The portiono of the current element that's above the baseline
-</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaselineBottom</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The portion of the current element that's below the baseline
-</span>
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> 0;
- <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">=</span> 0;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">count</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">numElements</span>;
- <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">count</span>; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptBracket/Brace">{</span>
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">element</span>:<span class="ActionScriptDefault_Text">ILayoutElement</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getElementAt</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">includeInLayout</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptReserved">continue</span>;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementHeight</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">usePreferredSize</span> <span class="ActionScriptOperator">?</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getPreferredBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> :
- <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baseline</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Number</span>;
- <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
- <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> 0;
-
- <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">baselinePosition</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baselinePosition</span>;
-
- <span class="ActionScriptDefault_Text">elementBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">baselinePosition</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">elementBaseline</span>;
- <span class="ActionScriptDefault_Text">elementBaselineBottom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">elementHeight</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">elementBaselineTop</span>;
-
- <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaselineTop</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaselineBottom</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span><span class="ActionScriptBracket/Brace">)</span>;
- <span class="ActionScriptBracket/Brace">}</span>
- <span class="ActionScriptBracket/Brace">}</span>
-<span class="ActionScriptBracket/Brace">}</span>
+<body><pre><span class="ActionScriptpackage">package</span> <span class="ActionScriptBracket/Brace">{</span>
+
+<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">core</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ILayoutElement</span>;
+<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">PropertyChangeEvent</span>;
+<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">formatters</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">NumberBase</span>;
+
+<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">spark</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">components</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">supportClasses</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">GroupBase</span>;
+<span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">spark</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">layouts</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">HorizontalLayout</span>;
+
+<span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">HBaselineLayout</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">HorizontalLayout</span>
+<span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">HBaselineLayout</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">super</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptComment">//----------------------------------
+</span> <span class="ActionScriptComment">// globalBaseline
+</span> <span class="ActionScriptComment">//----------------------------------
+</span>
+ <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+
+ <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NaN</span>;
+ <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">globalBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Number</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">set</span> <span class="ActionScriptDefault_Text">globalBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptDefault_Text">_globalBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">target</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">invalidateSize</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">invalidateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptComment">//----------------------------------
+</span> <span class="ActionScriptComment">// actualBaseline
+</span> <span class="ActionScriptComment">//----------------------------------
+</span>
+ <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>:<span class="ActionScriptDefault_Text">Number</span>;
+
+ <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Bindable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"propertyChange"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+ <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+
+ <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">actualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">Number</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">setActualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">value</span> <span class="ActionScriptOperator">==</span> <span class="ActionScriptDefault_Text">_actualBaseline</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptReserved">return</span>;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">oldValue</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_actualBaseline</span>;
+ <span class="ActionScriptDefault_Text">_actualBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">value</span>;
+ <span class="ActionScriptDefault_Text">dispatchEvent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">PropertyChangeEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">createUpdateEvent</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptString">"actualBaseline"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">oldValue</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">value</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptComment">//----------------------------------
+</span> <span class="ActionScriptComment">// verticalAlign
+</span> <span class="ActionScriptComment">//----------------------------------
+</span>
+ <span class="ActionScriptBracket/Brace">[</span><span class="ActionScriptMetadata">Inspectable</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">"General"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">enumeration</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"top,bottom,middle,justify,contentJustify,baseline"</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">defaultValue</span><span class="ActionScriptOperator">=</span><span class="ActionScriptString">"top"</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">]</span>
+ <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">verticalAlign</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">String</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">return</span> <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">verticalAlign</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptASDoc">/**
+ * @private
+ */</span>
+ <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">measure</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">measure</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">target</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">verticalAlign</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptString">"baseline"</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptReserved">return</span>;
+
+ <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">true</span> <span class="ActionScriptComment">/*usePreferredSize*/</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_globalBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
+
+ <span class="ActionScriptComment">// The measured height is the sum of the space above and below the baseline
+</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingTop</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingTop</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingBottom</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingBottom</span>;
+ <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">measuredHeight</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">round</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptASDoc">/**
+ * @private
+ */</span>
+ <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">updateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">unscaledWidth</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">unscaledHeight</span>:<span class="ActionScriptDefault_Text">Number</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptReserved">super</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updateDisplayList</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">unscaledWidth</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">unscaledHeight</span><span class="ActionScriptBracket/Brace">)</span>;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">target</span>:<span class="ActionScriptDefault_Text">GroupBase</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">this</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">target</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">target</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptDefault_Text">verticalAlign</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptString">"baseline"</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptReserved">return</span>;
+
+ <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">false</span> <span class="ActionScriptComment">/*usePreferredSize*/</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">_globalBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">_globalBaseline</span>;
+
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingTop</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingTop</span>;
+
+ <span class="ActionScriptComment">// Adjust the position of the elements
+</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">contentHeight</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0;
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">count</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">numElements</span>;
+ <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">count</span>; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">element</span>:<span class="ActionScriptDefault_Text">ILayoutElement</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getElementAt</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">includeInLayout</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptReserved">continue</span>;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baseline</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Number</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> 0;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">baselinePosition</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baselinePosition</span>;
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">y</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">baselinePosition</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setLayoutBoundsPosition</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsX</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptDefault_Text">contentHeight</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">contentHeight</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptDefault_Text">y</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptComment">// Adjust the content height
+</span> <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">paddingBottom</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">contentHeight</span> <span class="ActionScriptOperator">+=</span> <span class="ActionScriptDefault_Text">paddingBottom</span>;
+ <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setContentSize</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contentWidth</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">contentHeight</span><span class="ActionScriptBracket/Brace">)</span>;
+
+ <span class="ActionScriptComment">// Update the baseline
+</span> <span class="ActionScriptDefault_Text">setActualBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">measuredBaselineTop</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+
+ <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// How much space is needed above the baseline to fit all the elements
+</span> <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// How much space is needed below the baseline to fit all the elements
+</span>
+ <span class="ActionScriptASDoc">/**
+ * @private
+ */</span>
+ <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">measureBaseline</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">usePreferredSize</span>:<span class="ActionScriptDefault_Text">Boolean</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaseline</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The current element's explicit baseline constraint
+</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaselineTop</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The portiono of the current element that's above the baseline
+</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementBaselineBottom</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptComment">// The portion of the current element that's below the baseline
+</span>
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> 0;
+ <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">=</span> 0;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">count</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">numElements</span>;
+ <span class="ActionScriptReserved">for</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">i</span>:<span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> 0; <span class="ActionScriptDefault_Text">i</span> <span class="ActionScriptOperator"><</span> <span class="ActionScriptDefault_Text">count</span>; <span class="ActionScriptDefault_Text">i</span><span class="ActionScriptOperator">++</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptBracket/Brace">{</span>
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">element</span>:<span class="ActionScriptDefault_Text">ILayoutElement</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">target</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getElementAt</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">i</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span> <span class="ActionScriptOperator">||</span> <span class="ActionScriptOperator">!</span><span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">includeInLayout</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptReserved">continue</span>;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">elementHeight</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">usePreferredSize</span> <span class="ActionScriptOperator">?</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getPreferredBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span> :
+ <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getLayoutBoundsHeight</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baseline</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">Number</span>;
+ <span class="ActionScriptReserved">if</span> <span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">isNaN</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaseline</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
+ <span class="ActionScriptDefault_Text">elementBaseline</span> <span class="ActionScriptOperator">=</span> 0;
+
+ <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">baselinePosition</span>:<span class="ActionScriptDefault_Text">Number</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">element</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">baselinePosition</span>;
+
+ <span class="ActionScriptDefault_Text">elementBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">baselinePosition</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">elementBaseline</span>;
+ <span class="ActionScriptDefault_Text">elementBaselineBottom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">elementHeight</span> <span class="ActionScriptOperator">-</span> <span class="ActionScriptDefault_Text">elementBaselineTop</span>;
+
+ <span class="ActionScriptDefault_Text">measuredBaselineTop</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaselineTop</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">measuredBaselineTop</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptDefault_Text">measuredBaselineBottom</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">Math</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">max</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">elementBaselineBottom</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">measuredBaselineBottom</span><span class="ActionScriptBracket/Brace">)</span>;
+ <span class="ActionScriptBracket/Brace">}</span>
+ <span class="ActionScriptBracket/Brace">}</span>
+<span class="ActionScriptBracket/Brace">}</span>
<span class="ActionScriptBracket/Brace">}</span></pre></body>
</html>
http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/5ed4d983/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/src/HBaselineLayout.as
----------------------------------------------------------------------
diff --git a/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/src/HBaselineLayout.as b/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/src/HBaselineLayout.as
index 5d87ce7..ae4c3db 100644
--- a/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/src/HBaselineLayout.as
+++ b/TourDeFlex/TourDeFlex_content/flex4.0/CustomLayout-HLayoutBaseline/srcview/src/HBaselineLayout.as
@@ -16,184 +16,184 @@
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
-package {
-
-import mx.core.ILayoutElement;
-import mx.events.PropertyChangeEvent;
-import mx.formatters.NumberBase;
-
-import spark.components.supportClasses.GroupBase;
-import spark.layouts.HorizontalLayout;
-
-public class HBaselineLayout extends HorizontalLayout
-{
- public function HBaselineLayout()
- {
- super();
- }
-
- //----------------------------------
- // globalBaseline
- //----------------------------------
-
- [Inspectable(category="General")]
-
- private var _globalBaseline:Number = NaN;
- public function get globalBaseline():Number
- {
- return _globalBaseline;
- }
-
- public function set globalBaseline(value:Number):void
- {
- _globalBaseline = value;
- var target:GroupBase = this.target;
- if (target)
- {
- target.invalidateSize();
- target.invalidateDisplayList();
- }
- }
-
- //----------------------------------
- // actualBaseline
- //----------------------------------
-
- private var _actualBaseline:Number;
-
- [Bindable("propertyChange")]
- [Inspectable(category="General")]
-
- public function get actualBaseline():Number
- {
- return _actualBaseline;
- }
-
- private function setActualBaseline(value:Number):void
- {
- if (value == _actualBaseline)
- return;
-
- var oldValue:Number = _actualBaseline;
- _actualBaseline = value;
- dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "actualBaseline", oldValue, value));
- }
-
- //----------------------------------
- // verticalAlign
- //----------------------------------
-
- [Inspectable(category="General", enumeration="top,bottom,middle,justify,contentJustify,baseline", defaultValue="top")]
- override public function get verticalAlign():String
- {
- return super.verticalAlign;
- }
-
- /**
- * @private
- */
- override public function measure():void
- {
- super.measure();
-
- var target:GroupBase = this.target;
- if (!target || verticalAlign != "baseline")
- return;
-
- measureBaseline(true /*usePreferredSize*/);
- if (!isNaN(_globalBaseline))
- measuredBaselineTop = _globalBaseline;
-
- // The measured height is the sum of the space above and below the baseline
- if (isNaN(paddingTop))
- measuredBaselineTop += paddingTop;
- if (isNaN(paddingBottom))
- measuredBaselineBottom += paddingBottom;
- target.measuredHeight = Math.round(measuredBaselineTop + measuredBaselineBottom);
- }
-
- /**
- * @private
- */
- override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
- {
- super.updateDisplayList(unscaledWidth, unscaledHeight);
-
- var target:GroupBase = this.target;
- if (!target || verticalAlign != "baseline")
- return;
-
- measureBaseline(false /*usePreferredSize*/);
- if (!isNaN(_globalBaseline))
- measuredBaselineTop = _globalBaseline;
-
- if (isNaN(paddingTop))
- measuredBaselineTop += paddingTop;
-
- // Adjust the position of the elements
- var contentHeight:Number = 0;
- var count:int = target.numElements;
- for (var i:int = 0; i < count; i++)
- {
- var element:ILayoutElement = target.getElementAt(i);
- if (!element || !element.includeInLayout)
- continue;
-
- var elementBaseline:Number = element.baseline as Number;
- if (isNaN(elementBaseline))
- elementBaseline = 0;
-
- var baselinePosition:Number = element.baselinePosition;
- var y:Number = measuredBaselineTop + (elementBaseline - baselinePosition);
- element.setLayoutBoundsPosition(element.getLayoutBoundsX(), y);
- contentHeight = Math.max(contentHeight, element.getLayoutBoundsHeight() + y);
- }
-
- // Adjust the content height
- if (isNaN(paddingBottom))
- contentHeight += paddingBottom;
- target.setContentSize(target.contentWidth, contentHeight);
-
- // Update the baseline
- setActualBaseline(measuredBaselineTop);
- }
-
- private var measuredBaselineTop:Number = 0; // How much space is needed above the baseline to fit all the elements
- private var measuredBaselineBottom:Number = 0; // How much space is needed below the baseline to fit all the elements
-
- /**
- * @private
- */
- private function measureBaseline(usePreferredSize:Boolean):void
- {
- var elementBaseline:Number = 0; // The current element's explicit baseline constraint
- var elementBaselineTop:Number = 0; // The portiono of the current element that's above the baseline
- var elementBaselineBottom:Number = 0; // The portion of the current element that's below the baseline
-
- measuredBaselineTop = 0;
- measuredBaselineBottom = 0;
-
- var count:int = target.numElements;
- for (var i:int = 0; i < count; i++)
- {
- var element:ILayoutElement = target.getElementAt(i);
- if (!element || !element.includeInLayout)
- continue;
-
- var elementHeight:Number = usePreferredSize ? element.getPreferredBoundsHeight() :
- element.getLayoutBoundsHeight();
- elementBaseline = element.baseline as Number;
- if (isNaN(elementBaseline))
- elementBaseline = 0;
-
- var baselinePosition:Number = element.baselinePosition;
-
- elementBaselineTop = baselinePosition - elementBaseline;
- elementBaselineBottom = elementHeight - elementBaselineTop;
-
- measuredBaselineTop = Math.max(elementBaselineTop, measuredBaselineTop);
- measuredBaselineBottom = Math.max(elementBaselineBottom, measuredBaselineBottom);
- }
- }
-}
+package {
+
+import mx.core.ILayoutElement;
+import mx.events.PropertyChangeEvent;
+import mx.formatters.NumberBase;
+
+import spark.components.supportClasses.GroupBase;
+import spark.layouts.HorizontalLayout;
+
+public class HBaselineLayout extends HorizontalLayout
+{
+ public function HBaselineLayout()
+ {
+ super();
+ }
+
+ //----------------------------------
+ // globalBaseline
+ //----------------------------------
+
+ [Inspectable(category="General")]
+
+ private var _globalBaseline:Number = NaN;
+ public function get globalBaseline():Number
+ {
+ return _globalBaseline;
+ }
+
+ public function set globalBaseline(value:Number):void
+ {
+ _globalBaseline = value;
+ var target:GroupBase = this.target;
+ if (target)
+ {
+ target.invalidateSize();
+ target.invalidateDisplayList();
+ }
+ }
+
+ //----------------------------------
+ // actualBaseline
+ //----------------------------------
+
+ private var _actualBaseline:Number;
+
+ [Bindable("propertyChange")]
+ [Inspectable(category="General")]
+
+ public function get actualBaseline():Number
+ {
+ return _actualBaseline;
+ }
+
+ private function setActualBaseline(value:Number):void
+ {
+ if (value == _actualBaseline)
+ return;
+
+ var oldValue:Number = _actualBaseline;
+ _actualBaseline = value;
+ dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "actualBaseline", oldValue, value));
+ }
+
+ //----------------------------------
+ // verticalAlign
+ //----------------------------------
+
+ [Inspectable(category="General", enumeration="top,bottom,middle,justify,contentJustify,baseline", defaultValue="top")]
+ override public function get verticalAlign():String
+ {
+ return super.verticalAlign;
+ }
+
+ /**
+ * @private
+ */
+ override public function measure():void
+ {
+ super.measure();
+
+ var target:GroupBase = this.target;
+ if (!target || verticalAlign != "baseline")
+ return;
+
+ measureBaseline(true /*usePreferredSize*/);
+ if (!isNaN(_globalBaseline))
+ measuredBaselineTop = _globalBaseline;
+
+ // The measured height is the sum of the space above and below the baseline
+ if (isNaN(paddingTop))
+ measuredBaselineTop += paddingTop;
+ if (isNaN(paddingBottom))
+ measuredBaselineBottom += paddingBottom;
+ target.measuredHeight = Math.round(measuredBaselineTop + measuredBaselineBottom);
+ }
+
+ /**
+ * @private
+ */
+ override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+ {
+ super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+ var target:GroupBase = this.target;
+ if (!target || verticalAlign != "baseline")
+ return;
+
+ measureBaseline(false /*usePreferredSize*/);
+ if (!isNaN(_globalBaseline))
+ measuredBaselineTop = _globalBaseline;
+
+ if (isNaN(paddingTop))
+ measuredBaselineTop += paddingTop;
+
+ // Adjust the position of the elements
+ var contentHeight:Number = 0;
+ var count:int = target.numElements;
+ for (var i:int = 0; i < count; i++)
+ {
+ var element:ILayoutElement = target.getElementAt(i);
+ if (!element || !element.includeInLayout)
+ continue;
+
+ var elementBaseline:Number = element.baseline as Number;
+ if (isNaN(elementBaseline))
+ elementBaseline = 0;
+
+ var baselinePosition:Number = element.baselinePosition;
+ var y:Number = measuredBaselineTop + (elementBaseline - baselinePosition);
+ element.setLayoutBoundsPosition(element.getLayoutBoundsX(), y);
+ contentHeight = Math.max(contentHeight, element.getLayoutBoundsHeight() + y);
+ }
+
+ // Adjust the content height
+ if (isNaN(paddingBottom))
+ contentHeight += paddingBottom;
+ target.setContentSize(target.contentWidth, contentHeight);
+
+ // Update the baseline
+ setActualBaseline(measuredBaselineTop);
+ }
+
+ private var measuredBaselineTop:Number = 0; // How much space is needed above the baseline to fit all the elements
+ private var measuredBaselineBottom:Number = 0; // How much space is needed below the baseline to fit all the elements
+
+ /**
+ * @private
+ */
+ private function measureBaseline(usePreferredSize:Boolean):void
+ {
+ var elementBaseline:Number = 0; // The current element's explicit baseline constraint
+ var elementBaselineTop:Number = 0; // The portiono of the current element that's above the baseline
+ var elementBaselineBottom:Number = 0; // The portion of the current element that's below the baseline
+
+ measuredBaselineTop = 0;
+ measuredBaselineBottom = 0;
+
+ var count:int = target.numElements;
+ for (var i:int = 0; i < count; i++)
+ {
+ var element:ILayoutElement = target.getElementAt(i);
+ if (!element || !element.includeInLayout)
+ continue;
+
+ var elementHeight:Number = usePreferredSize ? element.getPreferredBoundsHeight() :
+ element.getLayoutBoundsHeight();
+ elementBaseline = element.baseline as Number;
+ if (isNaN(elementBaseline))
+ elementBaseline = 0;
+
+ var baselinePosition:Number = element.baselinePosition;
+
+ elementBaselineTop = baselinePosition - elementBaseline;
+ elementBaselineBottom = elementHeight - elementBaselineTop;
+
+ measuredBaselineTop = Math.max(elementBaselineTop, measuredBaselineTop);
+ measuredBaselineBottom = Math.max(elementBaselineBottom, measuredBaselineBottom);
+ }
+ }
+}
}
\ No newline at end of file