<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>muhuk.com &#187; hbox</title>
	<atom:link href="http://www.muhuk.com/tag/hbox/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.muhuk.com</link>
	<description>know thyself</description>
	<lastBuildDate>Thu, 29 Dec 2011 05:05:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Using Layouts In Qooxdoo &#8211; Part 3: HBox Layout</title>
		<link>http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-3-hbox-layout/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-layouts-in-qooxdoo-part-3-hbox-layout</link>
		<comments>http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-3-hbox-layout/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 11:00:11 +0000</pubDate>
		<dc:creator>Atamert Ölçgen</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[hbox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[qooxdoo]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://www.muhuk.com/?p=124</guid>
		<description><![CDATA[This is the third part of a tutorial series about layout managers, container objects and object hierarchies in Qooxdoo. Read the first part here. qx.ui.layout.HBox layout manager is similar to VBox but it places its children side by side. Let us begin with a simple application: 1 /* 2 #asset(hbox/*) 3 */ 4 qx.Class.define(&#34;hbox.Application&#34;, 5 [...]<div><a class="addthis_button" href="//addthis.com/bookmark.php?v=250" addthis:url='http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-3-hbox-layout/' addthis:title='Using Layouts In Qooxdoo &#8211; Part 3: HBox Layout '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div>]]></description>
			<content:encoded><![CDATA[<p><small>This is the third part of a tutorial series about layout managers, container objects and object hierarchies in Qooxdoo. Read the first part <a href="http://www.muhuk.com/2009/01/using-layouts-in-qooxdoo-part-1/">here</a>.</small></p>

<p><code>qx.ui.layout.HBox</code> layout manager is similar to <code>VBox</code> but it places its children side by side.</p>

<div id="attachment_128" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.muhuk.com/wp-content/uploads/2009/02/hbox.png"><img src="http://www.muhuk.com/wp-content/uploads/2009/02/hbox-300x150.png" alt="HBox Layout" title="HBox Layout" width="300" height="150" class="size-medium wp-image-128" /></a><p class="wp-caption-text">HBox Layout</p></div>

<p>Let us begin with a simple application:</p>

<pre><span style="color:#9a9a9a">   1 </span><span style="color:#38ad24">/*</span>
<span style="color:#9a9a9a">   2 </span><span style="color:#38ad24">#asset(hbox/*)</span>
<span style="color:#9a9a9a">   3 </span><span style="color:#38ad24">*/</span>
<span style="color:#9a9a9a">   4 </span>qx<span style="color:#555555">.</span>Class<span style="color:#555555">.</span><span style="color:#d11ced">define</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;hbox.Application&quot;</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">   5 </span><span style="color:#555555">{</span>
<span style="color:#9a9a9a">   6 </span>    extend<span style="color:#555555">:</span> qx<span style="color:#555555">.</span>application<span style="color:#555555">.</span>Standalone<span style="color:#555555">,</span>
<span style="color:#9a9a9a">   7 </span>    members<span style="color:#555555">: {</span>
<span style="color:#9a9a9a">   8 </span>        main<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(){</span>
<span style="color:#9a9a9a">   9 </span>            <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">base</span><span style="color:#555555">(</span>arguments<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  10 </span>
<span style="color:#9a9a9a">  11 </span>            <span style="color:#ff3030; font-weight:bold">var</span> main_container <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>container<span style="color:#555555">.</span><span style="color:#d11ced">Composite</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  12 </span>
<span style="color:#9a9a9a">  13 </span>            <span style="color:#ff3030; font-weight:bold">var</span> layout_manager <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>layout<span style="color:#555555">.</span><span style="color:#d11ced">HBox</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  14 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">setLayout</span><span style="color:#555555">(</span>layout_manager<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  15 </span>
<span style="color:#9a9a9a">  16 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 1&quot;</span><span style="color:#555555">));</span>
<span style="color:#9a9a9a">  17 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 2&quot;</span><span style="color:#555555">));</span>
<span style="color:#9a9a9a">  18 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 3&quot;</span><span style="color:#555555">));</span>
<span style="color:#9a9a9a">  19 </span>
<span style="color:#9a9a9a">  20 </span>            <span style="color:#ff3030; font-weight:bold">var</span> application_root <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">getRoot</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  21 </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span>main_container<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  22 </span>        <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  23 </span>    <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  24 </span><span style="color:#555555">});</span></pre>

<div id="attachment_129" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.muhuk.com/wp-content/uploads/2009/02/hbox1.png"><img src="http://www.muhuk.com/wp-content/uploads/2009/02/hbox1-300x226.png" alt="HBox Example 1" title="HBox Example 1" width="300" height="226" class="size-medium wp-image-129" /></a><p class="wp-caption-text">HBox Example 1</p></div>

<p>Ok, nothing special here. In the next example we will see how we can apply different constraints to individual child elements:</p>

<pre><span style="color:#9a9a9a">   1 </span><span style="color:#38ad24">/*</span>
<span style="color:#9a9a9a">   2 </span><span style="color:#38ad24">#asset(hbox/*)</span>
<span style="color:#9a9a9a">   3 </span><span style="color:#38ad24">*/</span>
<span style="color:#9a9a9a">   4 </span>qx<span style="color:#555555">.</span>Class<span style="color:#555555">.</span><span style="color:#d11ced">define</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;hbox.Application&quot;</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">   5 </span><span style="color:#555555">{</span>
<span style="color:#9a9a9a">   6 </span>    extend<span style="color:#555555">:</span> qx<span style="color:#555555">.</span>application<span style="color:#555555">.</span>Standalone<span style="color:#555555">,</span>
<span style="color:#9a9a9a">   7 </span>    members<span style="color:#555555">: {</span>
<span style="color:#9a9a9a">   8 </span>        main<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(){</span>
<span style="color:#9a9a9a">   9 </span>            <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">base</span><span style="color:#555555">(</span>arguments<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  10 </span>
<span style="color:#9a9a9a">  11 </span>            <span style="color:#ff3030; font-weight:bold">var</span> main_container <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>container<span style="color:#555555">.</span><span style="color:#d11ced">Composite</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  12 </span>
<span style="color:#9a9a9a">  13 </span>            <span style="color:#ff3030; font-weight:bold">var</span> layout_manager <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>layout<span style="color:#555555">.</span><span style="color:#d11ced">HBox</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  14 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">setLayout</span><span style="color:#555555">(</span>layout_manager<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  15 </span>
<span style="color:#ff0000">  <b>16</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span>
<span style="color:#ff0000">  <b>17</b> </span>                                           <span style="color:#1861a7">&quot;Child Widget 1&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span><span style="color:#0000ff">width</span><span style="color:#555555">:</span><span style="color:#32ba06">300</span><span style="color:#555555">}));</span>
<span style="color:#ff0000">  <b>18</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 2&quot;</span><span style="color:#555555">));</span>
<span style="color:#ff0000">  <b>19</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span>
<span style="color:#ff0000">  <b>20</b> </span>                                            <span style="color:#1861a7">&quot;Child Widget 3&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span><span style="color:#0000ff">width</span><span style="color:#555555">:</span><span style="color:#32ba06">75</span><span style="color:#555555">}));</span>
<span style="color:#ff0000">  <b>21</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span>
<span style="color:#ff0000">  <b>22</b> </span>                                <span style="color:#1861a7">&quot;Child Widget 4 has a slightly longer title&quot;</span><span style="color:#555555">));</span>
<span style="color:#9a9a9a">  23 </span>
<span style="color:#9a9a9a">  24 </span>            <span style="color:#ff3030; font-weight:bold">var</span> application_root <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">getRoot</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  25 </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span>main_container<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  26 </span>        <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  27 </span>    <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  28 </span><span style="color:#555555">});</span></pre>

<div id="attachment_130" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.muhuk.com/wp-content/uploads/2009/02/hbox2.png"><img src="http://www.muhuk.com/wp-content/uploads/2009/02/hbox2-300x226.png" alt="HBox Example 2" title="HBox Example 2" width="300" height="226" class="size-medium wp-image-130" /></a><p class="wp-caption-text">HBox Example 2</p></div>

<p>We have set some properties on child widgets here. I know, it&#8217;s a bit ugly doing it on the same line with the <code>add</code>ition. But screen space is more expensive now on the intertubes since the economic crisis<sup>1</sup>. The important point here is <em>we have set width of first and third widgets explicitly</em>. Second and fourth will be automatically sized. Also notice that the fourth widget is wider. Buttons consider length of their labels when calculating their sizes.</p>

<p>The container will also be auto-sized on creation. But it won&#8217;t fill the viewport since we haven&#8217;t coded this behaviour (see <a href="http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-2-vbox-layout/">previous part</a>&#41;. Next example will include this behaviour:</p>

<pre><span style="color:#9a9a9a">   1 </span><span style="color:#38ad24">/*</span>
<span style="color:#9a9a9a">   2 </span><span style="color:#38ad24">#asset(hbox/*)</span>
<span style="color:#9a9a9a">   3 </span><span style="color:#38ad24">*/</span>
<span style="color:#9a9a9a">   4 </span>qx<span style="color:#555555">.</span>Class<span style="color:#555555">.</span><span style="color:#d11ced">define</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;hbox.Application&quot;</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">   5 </span><span style="color:#555555">{</span>
<span style="color:#9a9a9a">   6 </span>    extend<span style="color:#555555">:</span> qx<span style="color:#555555">.</span>application<span style="color:#555555">.</span>Standalone<span style="color:#555555">,</span>
<span style="color:#9a9a9a">   7 </span>    members<span style="color:#555555">: {</span>
<span style="color:#9a9a9a">   8 </span>        main<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(){</span>
<span style="color:#9a9a9a">   9 </span>            <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">base</span><span style="color:#555555">(</span>arguments<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  10 </span>
<span style="color:#9a9a9a">  11 </span>            <span style="color:#ff3030; font-weight:bold">var</span> main_container <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>container<span style="color:#555555">.</span><span style="color:#d11ced">Composite</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  12 </span>
<span style="color:#9a9a9a">  13 </span>            <span style="color:#ff3030; font-weight:bold">var</span> layout_manager <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>layout<span style="color:#555555">.</span><span style="color:#d11ced">HBox</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  14 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">setLayout</span><span style="color:#555555">(</span>layout_manager<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  15 </span>
<span style="color:#ff0000">  <b>16</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 1&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#ff0000">  <b>17</b> </span>                <span style="color:#0000ff">width</span><span style="color:#555555">:</span> <span style="color:#32ba06">300</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>18</b> </span>                allowGrowX<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">true</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>19</b> </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#ff0000">  <b>20</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 2&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#ff0000">  <b>21</b> </span>                minWidth<span style="color:#555555">:</span> <span style="color:#32ba06">75</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>22</b> </span>                maxWidth<span style="color:#555555">:</span> <span style="color:#32ba06">200</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>23</b> </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#ff0000">  <b>24</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 3&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#ff0000">  <b>25</b> </span>                <span style="color:#0000ff">width</span><span style="color:#555555">:</span> <span style="color:#32ba06">75</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>26</b> </span>                allowGrowX<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">false</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>27</b> </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#9a9a9a">  28 </span>
<span style="color:#9a9a9a">  29 </span>            <span style="color:#ff3030; font-weight:bold">var</span> application_root <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">getRoot</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  30 </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span>main_container<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  31 </span>
<span style="color:#ff0000">  <b>32</b> </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">addListener</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;resize&quot;</span><span style="color:#555555">,</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(</span>e<span style="color:#555555">) {</span>
<span style="color:#ff0000">  <b>33</b> </span>                main_container<span style="color:#555555">.</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#ff0000">  <b>34</b> </span>                    <span style="color:#1861a7">&quot;width&quot;</span><span style="color:#555555">:</span> qx<span style="color:#555555">.</span>bom<span style="color:#555555">.</span>Viewport<span style="color:#555555">.</span><span style="color:#d11ced">getWidth</span><span style="color:#555555">(),</span>
<span style="color:#ff0000">  <b>35</b> </span>                <span style="color:#555555">});</span>
<span style="color:#ff0000">  <b>36</b> </span>            <span style="color:#555555">},</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">);</span>
<span style="color:#9a9a9a">  37 </span>        <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  38 </span>    <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  39 </span><span style="color:#555555">});</span>
</pre>

<div id="attachment_131" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.muhuk.com/wp-content/uploads/2009/02/hbox3.png"><img src="http://www.muhuk.com/wp-content/uploads/2009/02/hbox3-300x226.png" alt="HBox Example 3" title="HBox Example 3" width="300" height="226" class="size-medium wp-image-131" /></a><p class="wp-caption-text">HBox Example 3</p></div>

<p>We have quite a few changes this time. First of all each widget is set to <code>flex</code>. First and third widgets have their (different) <code>width</code>s explicitly set. <code>Grow</code>ing is enabled for the first<sup>2</sup> and disabled for the third. For the second widget we have created different constraints; we have set the maximum and minimum values for <code>width</code>.</p>

<p>Try resizing the window to see how each widget reacts. We should note that the second widget never goes beyond its limits. While the other two conform to fit the containers space. <code>MinWidth</code> and <code>MaxWidth</code> are stronger constraints than <code>width</code>.</p>

<p>Let&#8217;s try constraining the container&#8217;s size:</p>

<pre><span style="color:#9a9a9a">   1 </span><span style="color:#38ad24">/*</span>
<span style="color:#9a9a9a">   2 </span><span style="color:#38ad24">#asset(hbox/ *)</span>
<span style="color:#9a9a9a">   3 </span><span style="color:#38ad24">*/</span>
<span style="color:#9a9a9a">   4 </span>qx<span style="color:#555555">.</span>Class<span style="color:#555555">.</span><span style="color:#d11ced">define</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;hbox.Application&quot;</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">   5 </span><span style="color:#555555">{</span>
<span style="color:#9a9a9a">   6 </span>    extend<span style="color:#555555">:</span> qx<span style="color:#555555">.</span>application<span style="color:#555555">.</span>Standalone<span style="color:#555555">,</span>
<span style="color:#9a9a9a">   7 </span>    members<span style="color:#555555">: {</span>
<span style="color:#9a9a9a">   8 </span>        main<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(){</span>
<span style="color:#9a9a9a">   9 </span>            <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">base</span><span style="color:#555555">(</span>arguments<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  10 </span>
<span style="color:#9a9a9a">  11 </span>            <span style="color:#ff3030; font-weight:bold">var</span> main_container <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>container<span style="color:#555555">.</span><span style="color:#d11ced">Composite</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  12 </span>
<span style="color:#9a9a9a">  13 </span>            <span style="color:#ff3030; font-weight:bold">var</span> layout_manager <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>layout<span style="color:#555555">.</span><span style="color:#d11ced">HBox</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  14 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">setLayout</span><span style="color:#555555">(</span>layout_manager<span style="color:#555555">);</span>
<span style="color:#ff0000">  <b>15</b> </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#ff0000">  <b>16</b> </span>                maxWidth<span style="color:#555555">:</span> <span style="color:#32ba06">900</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>17</b> </span>                minWidth<span style="color:#555555">:</span> <span style="color:#32ba06">400</span><span style="color:#555555">,</span>
<span style="color:#ff0000">  <b>18</b> </span>            <span style="color:#555555">});</span>
<span style="color:#9a9a9a">  19 </span>
<span style="color:#9a9a9a">  20 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 1&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#9a9a9a">  21 </span>                <span style="color:#0000ff">width</span><span style="color:#555555">:</span> <span style="color:#32ba06">300</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  22 </span>                allowGrowX<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">true</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  23 </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#9a9a9a">  24 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 2&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#9a9a9a">  25 </span>                minWidth<span style="color:#555555">:</span> <span style="color:#32ba06">75</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  26 </span>                maxWidth<span style="color:#555555">:</span> <span style="color:#32ba06">200</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  27 </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#9a9a9a">  28 </span>            main_container<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span><span style="color:#ff3030; font-weight:bold">new</span> qx<span style="color:#555555">.</span>ui<span style="color:#555555">.</span>form<span style="color:#555555">.</span><span style="color:#d11ced">Button</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;Child Widget 3&quot;</span><span style="color:#555555">).</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#9a9a9a">  29 </span>                <span style="color:#0000ff">width</span><span style="color:#555555">:</span> <span style="color:#32ba06">75</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  30 </span>                allowGrowX<span style="color:#555555">:</span> <span style="color:#ff3030; font-weight:bold">false</span><span style="color:#555555">,</span>
<span style="color:#9a9a9a">  31 </span>            <span style="color:#555555">}), {</span>flex<span style="color:#555555">:</span> <span style="color:#32ba06">1</span><span style="color:#555555">});</span>
<span style="color:#9a9a9a">  32 </span>
<span style="color:#9a9a9a">  33 </span>            <span style="color:#ff3030; font-weight:bold">var</span> application_root <span style="color:#555555">=</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">.</span><span style="color:#d11ced">getRoot</span><span style="color:#555555">();</span>
<span style="color:#9a9a9a">  34 </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">add</span><span style="color:#555555">(</span>main_container<span style="color:#555555">);</span>
<span style="color:#9a9a9a">  35 </span>
<span style="color:#9a9a9a">  36 </span>            application_root<span style="color:#555555">.</span><span style="color:#d11ced">addListener</span><span style="color:#555555">(</span><span style="color:#1861a7">&quot;resize&quot;</span><span style="color:#555555">,</span> <span style="color:#ff3030; font-weight:bold">function</span><span style="color:#555555">(</span>e<span style="color:#555555">) {</span>
<span style="color:#9a9a9a">  37 </span>                main_container<span style="color:#555555">.</span><span style="color:#d11ced">set</span><span style="color:#555555">({</span>
<span style="color:#9a9a9a">  38 </span>                    <span style="color:#1861a7">&quot;width&quot;</span><span style="color:#555555">:</span> qx<span style="color:#555555">.</span>bom<span style="color:#555555">.</span>Viewport<span style="color:#555555">.</span><span style="color:#d11ced">getWidth</span><span style="color:#555555">(),</span>
<span style="color:#9a9a9a">  39 </span>                <span style="color:#555555">});</span>
<span style="color:#9a9a9a">  40 </span>            <span style="color:#555555">},</span> <span style="color:#ff3030; font-weight:bold">this</span><span style="color:#555555">);</span>
<span style="color:#9a9a9a">  41 </span>        <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  42 </span>    <span style="color:#555555">}</span>
<span style="color:#9a9a9a">  43 </span><span style="color:#555555">});</span>
</pre>

<p>We have set the maximum and minimum <code>width</code> for the container widget. If you resize the window you should notice the container obeying these constraints.</p>

<h3>VBox &amp; HBox Wrap-up</h3>

<p><code>VBox</code> and <code>HBox</code> are simple layout managers. I have mostly tried to illustrate how container preferences, layout preferences and child widget preferences work together with examples. In the next chapters we&#8217;ll work on more advanced layout managers and then composite layouts with multiple containers.</p>

<p><small>NEXT PART: <a href="http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-4-grid-layout/">Grid Layout</a></small></p>

<hr />

<p><strong>1:</strong> This is a lame joke, I&#8217;ve just done that for the sake of brevity.</p>

<p><strong>2:</strong> This is redundant. <code>Grow</code> and <code>Shrink</code> properties are <code>true</code> by default.</p>
<div><a class="addthis_button" href="http://www.muhuk.com//addthis.com/bookmark.php?v=250" addthis:url='http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-3-hbox-layout/' addthis:title='Using Layouts In Qooxdoo &#8211; Part 3: HBox Layout '><img src="//cache.addthis.com/cachefly/static/btn/v2/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/></a></div><p>No related posts.</p> <p><a href="http://www.muhuk.com/?flattrss_redirect&amp;id=124&amp;md5=a707d3accfd9ac98a69b67f891b34a6b" title="Flattr" target="_blank"><img src="http://www.muhuk.com/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.muhuk.com/2009/02/using-layouts-in-qooxdoo-part-3-hbox-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="http://www.muhuk.com/?flattrss_redirect&amp;id=124&amp;md5=a707d3accfd9ac98a69b67f891b34a6b" type="text/html" />
	</item>
	</channel>
</rss>

