
<?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>inalogic</title>
	<atom:link href="http://inalogic.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://inalogic.com</link>
	<description></description>
	<lastBuildDate>Mon, 19 Dec 2011 01:31:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>The end of the netbook</title>
		<link>http://inalogic.com/the-end-of-the-netbook/</link>
		<comments>http://inalogic.com/the-end-of-the-netbook/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 01:31:33 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=408</guid>
		<description><![CDATA[After reading this I couldn&#8217;t help but think that more vendors will follow. The netbook! That small, low powered laptop that was good enough to surf the web, won&#8217;t be around for long. The netbook is recognizable by its size, a bulky base, a big frame around a tiny screen and a keyboard that is hard [...]]]></description>
			<content:encoded><![CDATA[<p>After reading <a href="http://venturebeat.com/2011/12/15/dell-quits-netbook/">this</a> I couldn&#8217;t help but think that more vendors will follow. The netbook! That small, low powered laptop that was good enough to surf the web, won&#8217;t be around for long. The netbook is recognizable by its size, a bulky base, a big frame around a tiny screen and a keyboard that is hard to use for long periods of time.</p>
<div id="attachment_414" class="wp-caption aligncenter" style="width: 568px"><a href="http://inalogic.com/wp-content/uploads/2011/12/dell-netbooks-colors.jpg"><img class="size-full wp-image-414 " title="Dell Netbooks" src="http://inalogic.com/wp-content/uploads/2011/12/dell-netbooks-colors.jpg" alt="Dell Netbooks" width="558" height="315" /></a><p class="wp-caption-text">Dell Netbooks</p></div>
<p>If netbooks are on the way out, it means we will see more machines with OpenGL [ES] 2.0 coming to market. This is a good thing; the netbook I use for development has OpenGL 1.4 support.</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/the-end-of-the-netbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nux Layouts (part 5)</title>
		<link>http://inalogic.com/nux-layouts-part-5/</link>
		<comments>http://inalogic.com/nux-layouts-part-5/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 16:59:56 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[inalogic]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=387</guid>
		<description><![CDATA[I will conclude the Nux Layouts series with a look at the Grid and Layered Layout. Grid Layout The grid layout places views in a typical matrix style. All views in a grid are presented with a size that they may or may not use entirely. And views cannot be rendered outside of their allocated [...]]]></description>
			<content:encoded><![CDATA[<p>I will conclude the Nux Layouts series with a look at the Grid and Layered Layout.</p>
<h3>Grid Layout</h3>
<p>The grid layout places views in a typical matrix style. All views in a grid are presented with a size that they may or may not use entirely. And views cannot be rendered outside of their allocated space.</p>
<p>Horizontal and vertical space between views can be controlled by the developer, as is the padding of the grid content.</p>
<div id="attachment_391" class="wp-caption aligncenter" style="width: 513px"><a href="http://inalogic.com/wp-content/uploads/2011/11/GridLayoutDesign.png"><img class="size-full wp-image-391" title="Grid Layout Design" src="http://inalogic.com/wp-content/uploads/2011/11/GridLayoutDesign.png" alt="Grid Layout Design" width="503" height="315" /></a><p class="wp-caption-text">Grid Layout Design</p></div>
<p>In addition, a grid layout can be filled in two ways:</p>
<ul>
<li>Horizontally, with areas added in rows from left to right</li>
<li>Vertically, with areas added to columns from top to bottom</li>
</ul>
<div>
<div id="attachment_393" class="wp-caption aligncenter" style="width: 338px"><a href="http://inalogic.com/wp-content/uploads/2011/11/HGridLayout.png"><img class="size-full wp-image-393" title="Grid Layout Horizontal Flow" src="http://inalogic.com/wp-content/uploads/2011/11/HGridLayout.png" alt="Grid Layout Horizontal Flow" width="328" height="215" /></a><p class="wp-caption-text">Grid Layout Horizontal Flow</p></div>
<div id="attachment_394" class="wp-caption aligncenter" style="width: 338px"><a href="http://inalogic.com/wp-content/uploads/2011/11/VGridLayout.png"><img class="size-full wp-image-394" title="Grid Layout Vertical Flow" src="http://inalogic.com/wp-content/uploads/2011/11/VGridLayout.png" alt="Grid Layout Vertical Flow" width="328" height="215" /></a><p class="wp-caption-text">Grid Layout Vertical Flow</p></div>
<h3>Layered Layout</h3>
<p>Layered Layout is the latest addition to the Layout family. Basically, it stacks areas one onto the other. And the top level area is the one that receives inputs events. The stacked areas are rendered from back to front; and with blending enabled areas can be seen through the stack.</p>
<div id="attachment_398" class="wp-caption aligncenter" style="width: 451px"><a href="http://inalogic.com/wp-content/uploads/2011/11/LayeredLayout.png"><img class="size-full wp-image-398" title="Layered Layout Design" src="http://inalogic.com/wp-content/uploads/2011/11/LayeredLayout.png" alt="Layered Layout Design" width="441" height="372" /></a><p class="wp-caption-text">Layered Layout Design</p></div>
<h3>Conclusion</h3>
<p>The layouts that have been described through out the series are essential to give structure to Nux user interfaces. The Horizontal and Vertical layouts are the most complex of these layouts. This is due to traditional user interface design that tends to favor rows and columns of user interface components. However, user interface design is changing and things don&#8217;t have to be so linear anymore. Areas can be rendered in the 3D space and this offers new possibilities for user interaction.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/nux-layouts-part-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Developer Summit</title>
		<link>http://inalogic.com/ubuntu-developer-summit/</link>
		<comments>http://inalogic.com/ubuntu-developer-summit/#comments</comments>
		<pubDate>Sat, 12 Nov 2011 04:53:40 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=375</guid>
		<description><![CDATA[Last week I attended the Ubuntu Developer Summit in Orlando where we kicked off the development of Precise Pangolin. I was already there the week before to attend our design sprint where I met many new Canonical employees. Canonical is growing! UDS was full of conferences and presentations. Canonical announced a push toward tablets, smartphones and [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended the Ubuntu Developer Summit in Orlando where we kicked off the development of Precise Pangolin. I was already there the week before to attend our design sprint where I met many new Canonical employees. Canonical is growing!</p>
<p>UDS was full of conferences and presentations. Canonical announced a push toward <a href="http://www.markshuttleworth.com/archives/820">tablets, smartphones and TV set-top boxes</a>. All this means our products will have to be robust, reliable, great. Or simply exceed expectations.</p>
<p>I have a few pictures to share from UDS.</p>
<div id="attachment_376" class="wp-caption aligncenter" style="width: 610px"><a href="http://inalogic.com/wp-content/uploads/2011/11/IMG_0331.png"><img class="size-full wp-image-376" title="UDS P: During a session" src="http://inalogic.com/wp-content/uploads/2011/11/IMG_0331.png" alt="UDS P: During a session" width="600" height="450" /></a><p class="wp-caption-text">UDS P: During a session</p></div>
<div id="attachment_377" class="wp-caption aligncenter" style="width: 610px"><a href="http://inalogic.com/wp-content/uploads/2011/11/IMG_0097.png"><img class="size-full wp-image-377" title="UDS P: Unity running on TI Omap4" src="http://inalogic.com/wp-content/uploads/2011/11/IMG_0097.png" alt="UDS P: Unity running on TI Omap4" width="600" height="448" /></a><p class="wp-caption-text">UDS P: Unity running on TI Omap4</p></div>
<div id="attachment_378" class="wp-caption aligncenter" style="width: 610px"><a href="http://inalogic.com/wp-content/uploads/2011/11/IMG_0335.png"><img class="size-full wp-image-378" title="UDS P: Loading an Ubuntu image on the Omap4" src="http://inalogic.com/wp-content/uploads/2011/11/IMG_0335.png" alt="UDS P: Loading an Ubuntu image on the Omap4" width="600" height="450" /></a><p class="wp-caption-text">UDS P: Loading an Ubuntu image on the Omap4</p></div>
<div id="attachment_379" class="wp-caption aligncenter" style="width: 610px"><a href="http://inalogic.com/wp-content/uploads/2011/11/IMG_0085.png"><img class="size-full wp-image-379" title="UDS P: The Caribe Royale" src="http://inalogic.com/wp-content/uploads/2011/11/IMG_0085.png" alt="UDS P: The Caribe Royale" width="600" height="448" /></a><p class="wp-caption-text">UDS P: The Caribe Royale</p></div>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/ubuntu-developer-summit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Precise Pangolin</title>
		<link>http://inalogic.com/precise-pangolin/</link>
		<comments>http://inalogic.com/precise-pangolin/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 03:39:06 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unity]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=361</guid>
		<description><![CDATA[That is the name of the next Ubuntu release. I am heading to Orlando (Florida) for a Unity design sprint where the designers and developers get to meet and talk about what is coming next. Should be fun!]]></description>
			<content:encoded><![CDATA[<p>That is the name of the next Ubuntu release. I am heading to Orlando (Florida) for a Unity design sprint where the designers and developers get to meet and talk about what is coming next. Should be fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/precise-pangolin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nux Sample Programs</title>
		<link>http://inalogic.com/nux-sample-programs/</link>
		<comments>http://inalogic.com/nux-sample-programs/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 03:37:39 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=367</guid>
		<description><![CDATA[I am making some Nux sample programs available. The programs are currently available at this branch (lp:~jaytaoko/nux/nux-samples) but they will eventually get a proper location in launchpad. Nothing too fancy yet, but I will put all the demo I have in that program. Stay tuned.]]></description>
			<content:encoded><![CDATA[<p>I am making some Nux sample programs available. The programs are currently available at this branch (<a href="https://code.launchpad.net/~jaytaoko/nux/nux-samples">lp:~jaytaoko/<wbr>nux/nux-<wbr>samples</wbr></wbr></a>) but they will eventually get a proper location in launchpad. Nothing too fancy yet, but I will put all the demo I have in that program. Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/nux-sample-programs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Static Text View</title>
		<link>http://inalogic.com/static-text-view/</link>
		<comments>http://inalogic.com/static-text-view/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 06:31:20 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[general]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=346</guid>
		<description><![CDATA[Displaying static text is absolutely necessary in any UI toolkit. Not only that, it is important to do it right. I have been working on the text view lately. It uses Pango/Cairo on Ubuntu and Direct2D/DirectWrite on Windows. I did some fixes in the StatictText class to make it better suited when it is used inside other [...]]]></description>
			<content:encoded><![CDATA[<p>Displaying static text is absolutely necessary in any UI toolkit. Not only that, it is important to do it right. I have been working on the text view lately. It uses Pango/Cairo on Ubuntu and Direct2D/DirectWrite on Windows.</p>
<div id="attachment_347" class="wp-caption aligncenter" style="width: 587px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Text.png"><img class="size-full wp-image-347 " title="Text Formatting" src="http://inalogic.com/wp-content/uploads/2011/10/Text.png" alt="Text Formatting" width="577" height="432" /></a><p class="wp-caption-text">Text Formatting</p></div>
<p>I did some fixes in the StatictText class to make it better suited when it is used inside other views. For instance, the StaticText view may become larger or smaller according to size negotiation in a layout. However, its vertical size (the height) is determined by the size of the font. The StaticText view height cannot be controlled through the layout API. Its height is controlled by changing the size of the font.</p>
<p>The picture above, is showing the alignment of StatictText view in a vertical layout (VLayout). It also shows how the text appears with ellipsis if the StaticText view is too small to contain it. In the second line of text, the StaticText view maximum width has been forced to 250 pixels while the text inside occupies more than 250 pixels in width. Rather than cutting the text abruptly (or wrapping it), the rendering API (Cairo or DirectWrite) is showing ellipsis instead.</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/static-text-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Button Design</title>
		<link>http://inalogic.com/button-design/</link>
		<comments>http://inalogic.com/button-design/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 04:13:08 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=279</guid>
		<description><![CDATA[Lately I have been revisiting the Button user interface of Nux. The former Button design was very simple; it featured a label in the middle of the area, and the button changed its visual appearance as a result of the mouse pointer action over itself. If you wanted a button with more feature, then you [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been revisiting the Button user interface of Nux. The former Button design was very simple; it featured a label in the middle of the area, and the button changed its visual appearance as a result of the mouse pointer action over itself. If you wanted a button with more feature, then you had to write one yourself or subclass the existing one. Although I didn&#8217;t want to add too many to features to the Button design, I felt it was important to have just enough so you don&#8217;t need to recreate a new button from scratch to get started.</p>
<p>With the new Button design, a button may have a label, an image or both. The label and the image may displayed horizontal or vertically. You can control the space between them or choose which one comes first in an horizontal or vertical arrangement. Here is what it looks like.</p>
<div id="attachment_336" class="wp-caption aligncenter" style="width: 322px"><a href="http://inalogic.com/wp-content/uploads/2011/10/WeatherButtons.png"><img class="size-full wp-image-336" title="WeatherButtons" src="http://inalogic.com/wp-content/uploads/2011/10/WeatherButtons.png" alt="Weather Buttons" width="312" height="495" /></a><p class="wp-caption-text">Weather Buttons</p></div>
<p>I am using horizontal and vertical layouts to hold the image and the label together. It all came down together nicely and this should be enough to get started. No code available for now but it will be made available with the release of Nux 2.0 in a week.</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/button-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nux Layouts (part 4)</title>
		<link>http://inalogic.com/nux-layouts-part-4/</link>
		<comments>http://inalogic.com/nux-layouts-part-4/#comments</comments>
		<pubDate>Wed, 05 Oct 2011 22:51:32 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=286</guid>
		<description><![CDATA[In Part 3, I have shown the options available along the minor axis of an horizontal or vertical layout. In this part, I will go though the layout process along the major axis. I will be using an horizontal layout to demonstrate the process, but the same computations applies along the major axis of a [...]]]></description>
			<content:encoded><![CDATA[<p>In <a title="Nux Layouts (part 3)" href="http://inalogic.com/nux-layouts-part-3/">Part 3</a>, I have shown the options available along the minor axis of an horizontal or vertical layout. In this part, I will go though the layout process along the major axis. I will be using an horizontal layout to demonstrate the process, but the same computations applies along the major axis of a vertical layout. For reference, here are the previous parts in the Nux Layouts series: <a title="Nux Layouts (part 1)" href="http://inalogic.com/nux-layouts-part-1/">Part 1</a>, <a title="Nux Layouts (part 2)" href="http://inalogic.com/nux-layouts-part-2/">Part 2</a>, <a title="Nux Layouts (part 3)" href="http://inalogic.com/nux-layouts-part-3/">Part 3</a>.</p>
<p>Before I proceed, I want to introduce new terms. In previous parts of the Nux Layout series, I have been using the word &#8220;widget&#8221; to refer to containers (layouts) and physical interface component (such as button). However, I find the term &#8220;widget&#8221; inappropriate, too generic and not very descriptive. I prefer to substitute &#8220;area&#8221; to &#8220;widget&#8221;. An area occupies a physical region of the display. It may be a container (layout) or user interface object (such as a check box). Container type areas are invisible on the display but the placement of their content on the screen gives the hint of the role they play in the organization of the user interface. Some areas are both containers and user interface objects. A scroll view for instance is a visual interface component but it is also a container of a view that you can scroll up or down, left or right. In the Nux Layouts series, layouts as invisible container that inherit from the nux::Layout class.</p>
<h3>Layout computation along the major axis of an horizontal layout</h3>
<p>When I refer to a size, I am talking about the size along the major axis. For and horizontal layout, this is the width.</p>
<p>All areas added to an horizontal layout are given a scaling factor. That factor is an integer number equal or greater than 0. And every area has a minimum and maximum size that cannot be changed by the layout process.</p>
<div id="attachment_292" class="wp-caption aligncenter" style="width: 408px"><a href="http://inalogic.com/wp-content/uploads/2011/10/WidgetMinMaxSize.png"><img class="size-full wp-image-292" title="User Interface Component Size" src="http://inalogic.com/wp-content/uploads/2011/10/WidgetMinMaxSize.png" alt="User Interface Component Size" width="398" height="305" /></a><p class="wp-caption-text">User Interface Component Size</p></div>
<p>At the start of the horizontal layout computation process, areas with a scaling factor of 0 are set to their minimum size (only the major axis size is changed). Then, the total size of all areas with a scaling factor of 0 is taken out from the layout size (along the major dimension which is the width for an horizontal layout).</p>
<div id="attachment_325" class="wp-caption aligncenter" style="width: 561px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Layout-Available-Size.png"><img class="size-full wp-image-325" title="Layout Available Size" src="http://inalogic.com/wp-content/uploads/2011/10/Layout-Available-Size.png" alt="Layout Available Size" width="551" height="47" /></a><p class="wp-caption-text">Layout Available Size</p></div>
<p>I didn&#8217;t add it in the formula (for simplicity), but the left/right padding of the layout and the space between children should also be taken out from the layout&#8217;s total size. This would yield the correct available space to share between children with a non zero scale factor.</p>
<p>The layout&#8217;s available size is then shared among all VIC with a non zero scale factor according to this formula:</p>
<div id="attachment_303" class="wp-caption aligncenter" style="width: 399px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Size-Computation.png"><img class="size-full wp-image-303" title="Size Computation" src="http://inalogic.com/wp-content/uploads/2011/10/Size-Computation.png" alt="Size Computation" width="389" height="50" /></a><p class="wp-caption-text">Size Computation </p></div>
<p>The formula applies only if the minimum and maximum size of the area are respected. An area size cannot be smaller than its defined minimum or larger than its defined maximum. If the result of the formula would give an area a size that is larger than its maximum size, then the area would adopt its maximum size. If the result would be smaller than its minimum size, then the area adopts its minimum size.</p>
<p>Consider the following picture. It shows a simplified version of the layout process.</p>
<div id="attachment_313" class="wp-caption aligncenter" style="width: 523px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Size-Computation-Process.png"><img class="size-full wp-image-313" title="Size Computation Process" src="http://inalogic.com/wp-content/uploads/2011/10/Size-Computation-Process.png" alt="" width="513" height="543" /></a><p class="wp-caption-text">Size Computation Process</p></div>
<p>As a result of the computation, we have the folowwing:</p>
<ul>
<li>area 0 occupies 3/5 of the available size</li>
<li>each one of area 2 and 3 are 1/5 each of the available size</li>
<li>each one of area 2 and 3 and each 1/3 the size of area 0</li>
<li>area 1 is reduced to its minimum size</li>
</ul>
<h3>Recursion</h3>
<div>Areas can be containers or user interface components. In Nux, user interface components objects all inherit from the nux::View class. View objects may have a layout and that layout is the same size as the View (it can be a different size but I will leave size for another chapter).</div>
<div>When a layout assigns sizes to its areas, the areas themselves have to go through the same process and assign sizes to their own children. The process goes on and on down the areas tree and when it recurs back, each area informs its parent of it actual size and the parent tries to re-size itself to tightly pack its children. In doing so, the parent must not grow larger or smaller than the user defined minimum and maximum size.  And it can initiate a recursion down the areas tree, if it judges that there is more or less space to share among its children.</div>
<div>
<div id="attachment_316" class="wp-caption aligncenter" style="width: 527px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Layout-Process-Recursion.png"><img class="size-full wp-image-316" title="Layout Process Recursion" src="http://inalogic.com/wp-content/uploads/2011/10/Layout-Process-Recursion.png" alt="" width="517" height="289" /></a><p class="wp-caption-text">Layout Process Recursion</p></div>
<p>The important point is that, not only does the parent layout affects the size of its children, the children also affects the size of their parent. The parent layout always tries to tightly pack its children along the major axis. In the end, the horizontal layout may look like this:</p>
<div id="attachment_319" class="wp-caption aligncenter" style="width: 523px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Final-Layout-Result.png"><img class="size-full wp-image-319" title="Final Layout Result" src="http://inalogic.com/wp-content/uploads/2011/10/Final-Layout-Result.png" alt="Final Layout Result" width="513" height="555" /></a><p class="wp-caption-text">Final Layout Result</p></div>
<p>The last case reveal a configuration option. If the layout is larger than its content, the children may be distributed in different ways along the major axis:</p>
<div id="attachment_320" class="wp-caption aligncenter" style="width: 522px"><a href="http://inalogic.com/wp-content/uploads/2011/10/Final-Layout-Distribution.png"><img class="size-full wp-image-320" title="Final Layout Distribution" src="http://inalogic.com/wp-content/uploads/2011/10/Final-Layout-Distribution.png" alt="Final Layout Distribution" width="512" height="539" /></a><p class="wp-caption-text">Final Layout Distribution</p></div>
<h3></h3>
<h3>Summary for HLayout and VLayout</h3>
<p>All that has been said for the horizontal layout also applies to the vertical layout.</p>
<p>What I have shown here is a simplification of the layout process for nux::HLayout and nux::VLayout. There are more details to the layout process. By design, the process never gets stuck in a the recursion. The computation always reaches a solution even if it means that the children of the layout overflow beyond its borders. With the right of conditions imposed over the layouts and its areas, it is possible to achieve many linear arrangement styles.</p>
<p>In the next part I will go through some of the details of the grid and layered layouts.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/nux-layouts-part-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nux Layouts (part 3)</title>
		<link>http://inalogic.com/nux-layouts-part-3/</link>
		<comments>http://inalogic.com/nux-layouts-part-3/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 06:10:45 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=223</guid>
		<description><![CDATA[This is Part 3 of the Nux Layouts series (Part 1, Part 2). In the last article I briefly mentioned the major and minor axis in horizontal and vertical layouts. What are these? Let&#8217;s find out. Minor and Major axis The major axis in an horizontal Layout is its width, while the minor axis is its height. For a [...]]]></description>
			<content:encoded><![CDATA[<p>This is Part 3 of the Nux Layouts series (<a title="Nux Layouts (part 1)" href="http://inalogic.com/nux-layouts-part-1/">Part 1</a>, <a title="Nux Layouts (part 2)" href="http://inalogic.com/nux-layouts-part-2/">Part 2</a>). In the last article I briefly mentioned the major and minor axis in horizontal and vertical layouts. What are these? Let&#8217;s find out.</p>
<h3>Minor and Major axis</h3>
<p>The major axis in an horizontal Layout is its width, while the minor axis is its height. For a vertical layout, it is the opposite; the major axis is the height, while the minor axis is the width.</p>
<div id="attachment_226" class="wp-caption aligncenter" style="width: 373px"><a href="http://inalogic.com/wp-content/uploads/2011/09/HorizontalLayoutDimensions.png"><img class="size-full wp-image-226 " title="HorizontalLayoutDimensions" src="http://inalogic.com/wp-content/uploads/2011/09/HorizontalLayoutDimensions.png" alt="Horizontal Layout Axis" width="363" height="122" /></a><p class="wp-caption-text">Horizontal Layout Axis</p></div>
<div id="attachment_227" class="wp-caption aligncenter" style="width: 163px"><a href="http://inalogic.com/wp-content/uploads/2011/09/VerticalLayoutDimensions.png"><img class="size-full wp-image-227 " title="VerticalLayoutDimensions" src="http://inalogic.com/wp-content/uploads/2011/09/VerticalLayoutDimensions.png" alt="Vertical Layout Axis" width="153" height="331" /></a><p class="wp-caption-text">Vertical Layout Axis</p></div>
<p>Major and minor axis only applies to horizontal and vertical layouts. When I talk about a layout&#8217;s children minor axis. I am refering to the axis of the children that is aligned with the layout minor axis.</p>
<div id="attachment_228" class="wp-caption aligncenter" style="width: 517px"><a href="http://inalogic.com/wp-content/uploads/2011/09/WidgetInsideHorizontalLayout.png"><img class="size-full wp-image-228" title="WidgetInsideHorizontalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/WidgetInsideHorizontalLayout.png" alt="Widget Inside Horizontal Layout" width="507" height="241" /></a><p class="wp-caption-text">Widget Inside Horizontal Layout</p></div>
<div id="attachment_229" class="wp-caption aligncenter" style="width: 253px"><a href="http://inalogic.com/wp-content/uploads/2011/09/WidgetInsideVerticalLayout.png"><img class="size-full wp-image-229" title="WidgetInsideVerticalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/WidgetInsideVerticalLayout.png" alt="Widget Inside Vertical Layout" width="243" height="457" /></a><p class="wp-caption-text">Widget Inside Vertical Layout</p></div>
<p>When an horizontal or vertical layout goes through the size/position  negotiation process of its children, it can <em>try</em> and change the minor size of children according to the following options:</p>
<ul>
<li>give a child&#8217;s minor size the same size as the layout minor axis</li>
<li>give a child&#8217;s minor size a percentage of the layout minor axis</li>
<li>don&#8217;t change the child&#8217;s minor size</li>
<li>let the child&#8217;s minor size tightly match the size of its content</li>
</ul>
<div>
<div id="attachment_237" class="wp-caption aligncenter" style="width: 721px"><a href="http://inalogic.com/wp-content/uploads/2011/09/MinorSizeHorizontalLayout.png"><img class="size-full wp-image-237" title="MinorSizeHorizontalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/MinorSizeHorizontalLayout.png" alt="Minor Size Horizontal Layout" width="711" height="282" /></a><p class="wp-caption-text">Minor Size Horizontal Layout</p></div>
</div>
<div>
<div id="attachment_238" class="wp-caption aligncenter" style="width: 416px"><a href="http://inalogic.com/wp-content/uploads/2011/09/MinorSizeVerticalLayout1.png"><img class="size-full wp-image-238  " title="MinorSizeVerticalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/MinorSizeVerticalLayout1.png" alt="Minor Size Vertical Layout" width="406" height="587" /></a><p class="wp-caption-text">Minor Size Vertical Layout</p></div>
<p>The last option needs more precision. It means &#8220;try to make the the widget&#8217;s minor axis just  as big as what its own content requires&#8221;. Because widgets can have minimum and maximum sizes (see below), this choice cannot always be fulfilled; but that won&#8217;t stop the layout process from achieving the layout.</p>
<p>There are also options to place the children inside a layout. A child can be at the following positions along the layouts&#8217;s minor axis:</p>
<ul>
<li>start of the minor axis</li>
<li>center of the minor axis</li>
<li>end of the minor axis</li>
</ul>
<div>
<div id="attachment_235" class="wp-caption aligncenter" style="width: 589px"><a href="http://inalogic.com/wp-content/uploads/2011/09/MinorPositionHorizontalLayout.png"><img class="size-full wp-image-235" title="MinorPositionHorizontalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/MinorPositionHorizontalLayout.png" alt="Minor Position Horizontal Layout" width="579" height="239" /></a><p class="wp-caption-text">Minor Position Horizontal Layout</p></div>
</div>
<div>
<div id="attachment_236" class="wp-caption aligncenter" style="width: 291px"><a href="http://inalogic.com/wp-content/uploads/2011/09/MinorPositionVerticalLayout.png"><img class="size-full wp-image-236 " title="MinorPositionVerticalLayout" src="http://inalogic.com/wp-content/uploads/2011/09/MinorPositionVerticalLayout1.png" alt="Minor Position Vertical Layout" width="281" height="515" /></a><p class="wp-caption-text">Minor Position Vertical Layout</p></div>
<h3>Widget minimum and maximum sizes</h3>
<p>I have exposed the position/size options along the minor axis of horizontal and vertical layouts. When adding a widget into an horizontal or vertical layout, the developer uses the Layout API to control the placement and position of children along the minor axis. In addition, each widget has a minimum and maximum size. This gives the developer additional control over the layout system. The layout process can never change the minimum or maximum size of a widget on its own. It always respects the minimum and maximum boundaries set by the developers. In Nux, a widget can be as small as 1 x 1 and as large as 2147483647 x 2147483647. (To be realistic, I will be changing the maximum size for reasonable values, such as the maximum OpenGL texture size by the GPU).</p>
<h3><span class="Apple-style-span" style="font-size: 20px;">Widget tree</span></h3>
<p>Some precision about widgets. Widgets can be layouts or views. In Nux, a view is a UI element. That is a view has a visual representation and it can receive keyboard and mouse events (like a button or a check box). And so, layouts can have views or layouts as children. The layout process involves going through the widget tree and getting all widgets to conform to the rules of the layout system. Once a widget layout is computed, the result is passed over to its parent so it can complete it layout process and so on up to the root layout of the interface.</p>
<h3>Size along the major axis</h3>
<p>In the next part, I will be going through the layout process along the major axis of an horizontal or vertical layout. I will show how widgets get their size along the major axis.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/nux-layouts-part-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Nux Layouts (part 2)</title>
		<link>http://inalogic.com/nux-layouts-part-2/</link>
		<comments>http://inalogic.com/nux-layouts-part-2/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 01:15:55 +0000</pubDate>
		<dc:creator>jay</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[nux]]></category>

		<guid isPermaLink="false">http://inalogic.com/?p=187</guid>
		<description><![CDATA[In Part 1 I introduced Nux&#8217;s layouts types and how they structure the widget tree. Now, I will show the anatomy of a the layouts, how they are structured and how their children are placed inside. Horizontal and vertical layouts Both of these layouts have separate horizontal and vertical padding and they allow variable space between their [...]]]></description>
			<content:encoded><![CDATA[<p>In <a title="Nux Layouts (part 1)" href="http://inalogic.com/nux-layouts-part-1/">Part 1</a> I introduced Nux&#8217;s layouts types and how they structure the widget tree. Now, I will show the anatomy of a the layouts, how they are structured and how their children are placed inside.</p>
<h3>Horizontal and vertical layouts</h3>
<p>Both of these layouts have separate horizontal and vertical padding and they allow variable space between their children.</p>
<div id="attachment_207" class="wp-caption aligncenter" style="width: 508px"><a href="http://inalogic.com/wp-content/uploads/2011/09/HorizontalLayoutPadding.png"><img class="size-full wp-image-207   " title="HorizontalLayoutPadding" src="http://inalogic.com/wp-content/uploads/2011/09/HorizontalLayoutPadding.png" alt="Horizontal Layout Padding" width="498" height="125" /></a><p class="wp-caption-text">Horizontal Layout Padding</p></div>
<div id="attachment_209" class="wp-caption aligncenter" style="width: 325px"><a href="http://inalogic.com/wp-content/uploads/2011/09/VerticalLayoutPadding.png"><img class="size-full wp-image-209" title="VerticalLayoutPadding" src="http://inalogic.com/wp-content/uploads/2011/09/VerticalLayoutPadding.png" alt="Vertical Layout Padding" width="315" height="423" /></a><p class="wp-caption-text">Vertical Layout Padding</p></div>
<p>In both pictures above (1) represent the layout horizontal padding, (2) the vertical padding and (3) the space between children. The padding allows some space between the children and the layout&#8217;s borders. The horizontal and vertical padding may have different values, but the space between items remains the same. All these values can be set through the layout class API.</p>
<h3>Grid layouts</h3>
<p>Just like horizontal and vertical layouts, grids have paddings and internal space between children. However, the horizontal (4) and vertical (3) space between the children may have different values.</p>
<div id="attachment_210" class="wp-caption aligncenter" style="width: 597px"><a href="http://inalogic.com/wp-content/uploads/2011/09/GridLayoutPadding.png"><img class="size-full wp-image-210" title="GridLayoutPadding" src="http://inalogic.com/wp-content/uploads/2011/09/GridLayoutPadding.png" alt="Grid Layout Padding" width="587" height="315" /></a><p class="wp-caption-text">Grid Layout Padding</p></div>
<h3>Layered layouts</h3>
<p>A layered layout puts layouts on top of each others. At any time, one child of a layered layout is chosen to be the front layout. The front layout is the first child to receive input events in a layered layout. Children of layered layouts may be widgets or layouts of any kind (horizontal, vertical, grid or even layered layouts).</p>
<div id="attachment_201" class="wp-caption aligncenter" style="width: 451px"><a href="http://inalogic.com/wp-content/uploads/2011/09/LayeredLayout.png"><img class="size-full wp-image-201" title="LayeredLayout" src="http://inalogic.com/wp-content/uploads/2011/09/LayeredLayout.png" alt="Layered Layout" width="441" height="372" /></a><p class="wp-caption-text">Layered Layout</p></div>
<p>Layered layouts don&#8217;t have padding. Instead each child layout defines its own. Layered layout take care of the stacking of the children and their order in the stack.</p>
<h3>More about layouts</h3>
<p>There are more details about layouts. Although the horizontal and vertical layouts are conceptually simple, they are very flexible in the way they organize the placement of their children. In the next part, I will first define what are the minor and major axis in horizontal and vertical layouts. Then I will show the placement options available to children of these layouts.</p>
]]></content:encoded>
			<wfw:commentRss>http://inalogic.com/nux-layouts-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

