<?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>Thomas Wood</title>
	<atom:link href="http://blogs.gnome.org/thos/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/thos</link>
	<description>My Weblog</description>
	<lastBuildDate>Sun, 31 Jan 2010 17:20:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Searching the Control Center</title>
		<link>http://blogs.gnome.org/thos/2010/01/31/searching-the-control-center/</link>
		<comments>http://blogs.gnome.org/thos/2010/01/31/searching-the-control-center/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 17:17:30 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=402</guid>
		<description><![CDATA[Nick and I had a discussion a few days ago about what search should look like in the new Settings shell. I had a go at implementing what we discussed and now it is possible to search not only panel names, but also their descriptions:

Showing the match in-line (much like search engines do) gives the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nedrichards.com/">Nick</a> and I had a discussion a few days ago about what search should look like in the new Settings shell. I had a go at implementing what we discussed and now it is possible to search not only panel names, but also their descriptions:<br />
<a href="http://blogs.gnome.org/thos/files/2010/01/searching-settings.png"><img src="http://blogs.gnome.org/thos/files/2010/01/searching-settings.png" alt="searching-settings" title="searching-settings" width="440" height="154"/></a></p>
<p>Showing the match in-line (much like search engines do) gives the user an understanding of why the item has matched, but also some context. It probably needs some tweaks to detect things like word boundaries, and the description of each panel needs to make sure it includes relevant keywords.</p>
<p>I also made sure that keyboard usage was easy. The filtering is done as you type and pressing enter will activate the first (top left most) item. Hitting the escape key will clear the entry and return you to the All Settings view. I also need to add arrow key support so that it is possible to navigate directly to the results view from the entry.</p>
<p>If you&#8217;d like to try it out for yourself, the code is in the extensible-shell branch of gnome-control-center.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2010/01/31/searching-the-control-center/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Monet &#8211; A Widget Drawing API</title>
		<link>http://blogs.gnome.org/thos/2010/01/22/monet-a-widget-drawing-api/</link>
		<comments>http://blogs.gnome.org/thos/2010/01/22/monet-a-widget-drawing-api/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 22:45:26 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=391</guid>
		<description><![CDATA[I&#8217;ve been quietly working in my spare time on a new project, called Monet. The aim is to provide a cross-toolkit widget drawing API and theming architecture. This would allow different toolkits to use the same code to draw their widgets, thus producing a more consistent look and feel across applications. The other motivator is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been quietly working in my spare time on a new project, called Monet. The aim is to provide a cross-toolkit widget drawing API and theming architecture. This would allow different toolkits to use the same code to draw their widgets, thus producing a more consistent look and feel across applications. The other motivator is to improve the theming abilities provided by existing toolkits and applications. The main target is to improve GTK+ theming opportunities, but I am also considering extending this beyond traditional widget theming, especially as GTK+ may have client side window decoration support soon.</p>
<p>Following on from the discussions at the theme hackfest last year, with extra input from Benjamin Berg (current maintainer of the gtk-engines package) and other Gnome artists and designers, we&#8217;ve created a new widget drawing API, drawing on ideas used in existing toolkits such as GTK+, Qt and Windows.</p>
<p>The main concepts behind the design are fairly simple. Each widget is represented by an object that encapsulates all the information necessary to draw it. This can include geometry, context, state, colours, and other properties such as text. For example, the Button class includes text, background and border colours, as well as certain flags such as whether the button is focused. This information is passed to the theme drawing API (the &#8220;theme engine&#8221;) with a cairo context, onto which the button will be drawn. More complex widgets are split into sub-elements and passed to the theme engine as a group. More exotic widgets such as window frames could also be added as part of this API. The advantages of using objects to define each widget&#8217;s drawing parameters is that they can be sub-classed and provide well documented properties.</p>
<p>Since the drawing API is defined as an abstract class, it is still possible to write new themes in code, just as they are done now in GTK+. However, I would like to include a theme engine that allows artists and theme authors to write new themes without requiring a compiler and even provide GUI tools for creating themes. There are several possible solutions to this:</p>
<p>Using an existing specification such as CSS seems attractive, but on closer inspection it is clear that CSS is not suitable for widget drawing without using images or custom extensions. As author of the Moblin toolkit, which uses CSS exclusively for styling, I have experienced first hand its short comings when it is applied to a widget scene graph, rather than an HTML document. There are several unapparent problems that arise, such as the lack of class hierarchy matching*.</p>
<p>SVG might be an alternative solution, but again there are problems that can only be solved with custom attributes and renderers. These would need to include the ability to keep constant stroke widths and corner radii when scaling. This would necessitate both custom editors and renderers.</p>
<p>Another possibility would be to use a custom scripting language such as Lua or even Javascript. The drawing API could be exposed to appropriate objects in these languages and cairo used directly. However, I would expect concerns about performance and efficiency, not to mention that writing a wysiwyg editor would be near impossible.</p>
<p>Finally, a custom XML format was suggested as a possibility (in fact, by a designer, no less). Personally, I don&#8217;t think anyone should have to write XML to create a theme, but luckily it would be trivial to write a custom editor for this type of theme. It also would have the advantage that it is not bound to any existing but ever-so-slightly different use case. It would also be trivial to expose the cairo API in such a format. Metacity also has a drawing API defined in XML and this could be used as a starting point (although, a much simpler schema could be achieved since less geometry needs to be specified).</p>
<p>I would be interested to hear any further thoughts on alternative theme formats.</p>
<p>I have started prototyping these ideas in a git repository on git.gnome.org, under the Monet project. Since the API includes an object for each widget type, I have experimented with implementing this to some success using Vala. The abstract base classes are available, as are classes for simple widgets. There is also an implementation of a GTK+ engine in Vala, which would form the basis of a translational mechanism. A very simple (and limited) test engine is implemented, along with a test case to drive it. Certainly none of it is interesting to users yet.</p>
<p>My hope for the future would be that toolkits gradually begin to start using the new API natively, but to help during the transition period, wrappers can be added to the existing infrastructure. For example, the project will include a traditional GTK+ engine as a proxy to allow GTK+ users to start using the new architecture immediately.</p>
<p>There are certainly problems that the API does not yet solve, such as transition effects. Other considerations might whether to add support for &#8220;native&#8221; styles on other platforms, such as Windows and Mac OS X, or whether these are best left to each toolkit to implement themselves. I would be interested to hear any suggestions around these areas.</p>
<p><em>* Qt &#8220;<a href="http://qt.nokia.com/doc/4.6/stylesheet-syntax.html#selector-types">solve</a>&#8221; this in quite an interesting way, but it changes the semantics of class selectors in CSS.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2010/01/22/monet-a-widget-drawing-api/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>GNOME/Moblin Control Center</title>
		<link>http://blogs.gnome.org/thos/2010/01/15/gnomemoblin-control-center/</link>
		<comments>http://blogs.gnome.org/thos/2010/01/15/gnomemoblin-control-center/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 16:17:45 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Moblin]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=382</guid>
		<description><![CDATA[I&#8217;ve been looking recently at what can be done to improve the GNOME Control Center shell for both GNOME 3.0 and for Moblin. In Moblin, we wanted a single window approach, so that finding a setting and opening a preference pane could be done within a single environment. After some discussion on IRC and on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking recently at what can be done to improve the GNOME Control Center shell for both GNOME 3.0 and for Moblin. In Moblin, we wanted a single window approach, so that finding a setting and opening a preference pane could be done within a single environment. After some discussion on IRC and on the control center mailing list, it seems people within the Gnome community were also interested in this idea. I&#8217;ve been having a go at prototyping this behaviour to see how it would turn out. We&#8217;ve now gone through a couple of iterations of refining the design into something that is more promising. Here are some screenshots of how it looks right now:</p>
<p>Displaying all settings categories:<br />
<img src="http://blogs.gnome.org/thos/files/2010/01/Settings-All.png" alt="Settings-All" title="Settings-All" width="681" height="348" class="alignnone size-full wp-image-383" /></p>
<p>Searching for a setting:<br />
<img src="http://blogs.gnome.org/thos/files/2010/01/Settings-Search.png" alt="Settings-Search" title="Settings-Search" width="681" height="348" class="alignnone size-full wp-image-385" /></p>
<p>Opening up the keyboard preferences:<br />
<img src="http://blogs.gnome.org/thos/files/2010/01/Settings-Keyboard.png" alt="Settings-Keyboard" title="Settings-Keyboard" width="681" height="348" class="alignnone size-full wp-image-384" /></p>
<p>The work is all available in the single-window-shell branch of <a href="http://git.gnome.org/browse/gnome-control-center">gnome-control-center</a>. At the moment, the single window behaviour is implemented using the XEmbed protocol via GtkPlug and GtkSocket. This allowed us to quickly prototype and experiment with the behaviour while making minimal changes to the existing capplets, although any capplets without the added functionality will open in a new window as before. Jon McCann of RedHat is also looking at using GIO Extension Point based approach, but this requires a more significant re-write of the capplets.</p>
<p>At the upcoming <a href="http://live.gnome.org/UsabilityProject/London2010">GNOME Usability hackfest</a> I hope to gather more feedback on the design and possibly start working on refining the UI for many of the individual preference panes as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2010/01/15/gnomemoblin-control-center/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>My first (major) GTK+ patch</title>
		<link>http://blogs.gnome.org/thos/2009/12/21/my-first-major-gtk-patch/</link>
		<comments>http://blogs.gnome.org/thos/2009/12/21/my-first-major-gtk-patch/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 14:56:15 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=378</guid>
		<description><![CDATA[Matthias Clasen cleaned up and pushed my first major patch to GTK+ yesterday. It allows the underlines on menus and buttons to be hidden until the alt key is pressed, similar to behaviour seen on recent versions of Windows. It is configurable via GtkSettings and off by default.
I&#8217;d like to thank Matthias and Emmanuele Bassi [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.fedoraproject.org/wp/mclasen/">Matthias Clasen</a> cleaned up and <a href="http://git.gnome.org/browse/gtk+/commit/?id=c59f76fda2560273d7ee3255db9b697a7077ac38">pushed</a> my first major patch to GTK+ yesterday. It allows the underlines on menus and buttons to be hidden until the alt key is pressed, similar to behaviour seen on recent versions of Windows. It is configurable via GtkSettings and off by default.</p>
<p>I&#8217;d like to thank Matthias and <a href="http://blogs.gnome.org/ebassi">Emmanuele Bassi</a> for their help reviewing the patch and to Intel for allowing me to develop it at work (it was a requirement for Moblin from our illustrious interaction designer, <a href="http://www.nedrichards.com/">Nick Richards</a>).</p>
<p>The final menu behaviour is a little different from my original idea and I&#8217;ve attached a patch to the <a href="https://bugzilla.gnome.org/show_bug.cgi?id=588554">bug</a> that implements my preferred behaviour. You can try out the new setting by grabbing GTK+ from git and adding <code>gtk-auto-mnemonics=1</code> into your <code>~/.gtkrc-2.0</code> file.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/12/21/my-first-major-gtk-patch/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Moblin UI Toolkit 0.3.0</title>
		<link>http://blogs.gnome.org/thos/2009/12/11/moblin-ui-toolkit-0-3-0/</link>
		<comments>http://blogs.gnome.org/thos/2009/12/11/moblin-ui-toolkit-0-3-0/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 17:47:34 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=374</guid>
		<description><![CDATA[A little bit earlier than previously advertised, today I have made version 0.3.0 of the Moblin UI Toolkit available.
Disclaimer
This is a development release. API and ABI are very likely to change. Compatibility with future and previous versions is not guaranteed. It has had only limited testing and there are unfinished features and plenty of bugs [...]]]></description>
			<content:encoded><![CDATA[<p>A little bit earlier than previously advertised, today I have made version 0.3.0 of the Moblin UI Toolkit available.</p>
<p><strong>Disclaimer</strong></p>
<p>This is a development release. API and ABI are very likely to change. Compatibility with future and previous versions is not guaranteed. It has had only limited testing and there are unfinished features and plenty of bugs in this release. It should definitively not be used in production environments.</p>
<p><strong>Changes</strong></p>
<p>Here is the least of new features and fixes, from the NEWS file:</p>
<p><strong>0.3.0</strong></p>
<p>Changes since 0.2.0</p>
<ul>
<li> New toolbar widget
<li> Convert MxBin to abstract class
<li> Add MxFrame as a drop-in replacement for plain instances of MxBin
<li> Use the i-beam insertion mouse cursor in MxEntry
<li> Clean up MxGrid API to be more consistent with other widgets
<li> Add support for font-weight property to buttons and labels
<li> Add animation layout support to MxBoxLayout
<li> Add special styling for ComboBoxes inside a toolbar
<li> Implement font styling in ComboBox
<li> Fix expander label visibility
<li> Add missing public headers and single include guards (Bastian Winkler)
<li> Clean up various references to removed functions (Bastian Winkler)
<li> Documentation improvements (Elliot Smith)
</ul>
<p><strong>Sources</strong></p>
<p>Sources are available from download.moblin.org:</p>
<p>  <a href="http://download.moblin.org/sources/mx/0.3/">http://download.moblin.org/sources/mx/0.3/</a></p>
<p>or from git:</p>
<p>  <a href="http://git.moblin.org/cgit.cgi/mx/">http://git.moblin.org/cgit.cgi/mx/</a></p>
<p>  git clone git://git.moblin.org/mx</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/12/11/moblin-ui-toolkit-0-3-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Layout Animations in Clutter</title>
		<link>http://blogs.gnome.org/thos/2009/12/10/layout-animations-in-clutter/</link>
		<comments>http://blogs.gnome.org/thos/2009/12/10/layout-animations-in-clutter/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 22:44:50 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=365</guid>
		<description><![CDATA[I&#8217;ve been playing around with layout animations in Clutter recently and made a video of what I have achieved. Currently, Clutter has very good and understood support for animations using fixed positioning, but I wanted to experiment with animations inside a layout manager. After a lot of thought, the solution was simpler than I had [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been playing around with layout animations in Clutter recently and made a video of what I have achieved. Currently, Clutter has very good and understood support for animations using fixed positioning, but I wanted to experiment with animations inside a layout manager. After a lot of thought, the solution was simpler than I had imagined. In its current form, it involves storing the child allocations at the start of the animation and then simply calculating the children&#8217;s positions between the start and final destinations based on the alpha value from the timeline. Animation is disabled for most allocations, but is started by certain events such as changing child properties or orientation. The add and remove animations required some additional logic to make sure the new actor faded in once the animation had finished.</p>
<p>I made a video of MxBoxLayout that shows changing packing options (expand, fill and alignment) as well as adding and removing children, and changing orientation (the layout children are just ClutterRectangles):</p>
<p><video src="http://blogs.gnome.org/thos/files/2009/12/animated-box-layout.ogg" controls="controls"><a href="http://blogs.gnome.org/thos/files/2009/12/animated-box-layout.ogg">animated-box-layout</a></video></p>
<p>The work is currently in a branch of the Moblin UI Toolkit <a href="http://git.moblin.org/cgit.cgi/mx/">repository</a> (animated-box-layout) which I will merge once I have added an enable-animations property to the actor.</p>
<p>In other news, there is now a page on Moblin.org for the <a href="http://moblin.org/projects/moblin-ui-toolkit">Moblin UI Toolkit</a>, and I expect API reference documentation to be available on-line soon too. There is also a new component in <a href="http://bugzilla.moblin.org">Moblin bugzilla</a> specifically for the new toolkit (under &#8220;Moblin Distribution&#8221;).</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/12/10/layout-animations-in-clutter/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
<enclosure url="http://blogs.gnome.org/thos/files/2009/12/animated-box-layout.ogg" length="178653" type="audio/ogg" />
		</item>
		<item>
		<title>Festive Beers</title>
		<link>http://blogs.gnome.org/thos/2009/12/04/festive-beers/</link>
		<comments>http://blogs.gnome.org/thos/2009/12/04/festive-beers/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 22:35:48 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=362</guid>
		<description><![CDATA[With the festive season fast approaching, Hylke and I realised that we hadn&#8217;t had a GNOME beer event recently and that if we wanted to do one before the end of the year, it would have to be pretty soon. So, a little on the short notice side, is anyone up for beers in London [...]]]></description>
			<content:encoded><![CDATA[<p>With the festive season fast approaching, <a href="http://www.bomahy.nl/hylke/blog/">Hylke</a> and I realised that we hadn&#8217;t had a GNOME beer event recently and that if we wanted to do one before the end of the year, it would have to be pretty soon. So, a little on the short notice side, is anyone up for beers in London next Friday (11th)? If so, drop your name onto the <a href="http://live.gnome.org/LondonBeer/Version2.8">wiki page</a> and we&#8217;ll see you then!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/12/04/festive-beers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moblin Toolkit 0.2.0</title>
		<link>http://blogs.gnome.org/thos/2009/12/01/moblin-toolkit-0-2-0/</link>
		<comments>http://blogs.gnome.org/thos/2009/12/01/moblin-toolkit-0-2-0/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 17:34:58 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=358</guid>
		<description><![CDATA[Yesterday I announced a new development snapshot of the Moblin Toolkit, along with a preliminary schedule. I&#8217;m hoping to be API and ABI stable by February and have the first stable release at the beginning of March.
We&#8217;re working on the bugzilla component, but for the moment issues should be reported in the &#8220;nbtk&#8221; component of [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I <a href="http://lists.moblin.org/pipermail/dev/2009-November/007353.html">announced</a> a new development snapshot of the Moblin Toolkit, along with a preliminary schedule. I&#8217;m hoping to be API and ABI stable by February and have the first stable release at the beginning of March.</p>
<p>We&#8217;re working on the bugzilla component, but for the moment issues should be reported in the &#8220;nbtk&#8221; component of <a href="http://bugzilla.moblin.org">bugzilla.moblin.org</a>.</p>
<p>Quite a few people asked before about language bindings. I don&#8217;t anticipate supporting a lot of language bindings, but I will be ensuring GObject introspection works well. I hope that will help people generate any bindings they wish to use and keep them up to date with relative ease. Personally, I have already been using Javascript (via <a href="http://live.gnome.org/Gjs/">Gjs</a>) to test some aspects of the project.</p>
<p>The interesting features in this release are:</p>
<ul>
<li>&#8220;long-press&#8221; signal added to MxButton (inspired by the &#8220;touch-and-hold&#8221; <a href="https://bugzilla.gnome.org/show_bug.cgi?id=315645">discussion</a> in Gnome bugzilla)</li>
<li>Added an &#8220;always-on-top&#8221; base class, which helps in creating the always-on-top actors such as tooltips and menus.</li>
<li>Improved error reporting and various other bug fixes</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/12/01/moblin-toolkit-0-2-0/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>art.gnome.org updates</title>
		<link>http://blogs.gnome.org/thos/2009/11/23/art-gnome-org-updates/</link>
		<comments>http://blogs.gnome.org/thos/2009/11/23/art-gnome-org-updates/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 23:07:39 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=353</guid>
		<description><![CDATA[I poked around with art.gnome.org recently and added support for sorting backgrounds and themes by popularity. This throws up some interesting results, such as showing the XP look-a-like theme being the fourth most popular on the site.
Even more interestingly still, I hacked up support to allow most themes (gtk, metacity and icon themes) to be [...]]]></description>
			<content:encoded><![CDATA[<p>I poked around with art.gnome.org recently and added support for sorting backgrounds and themes by popularity. This throws up some interesting results, such as showing the XP look-a-like theme being the fourth most popular on the site.</p>
<p>Even more interestingly still, I hacked up support to allow most themes (gtk, metacity and icon themes) to be installed directly from the web page. This is achieved by setting the content-type to application/x-gnome-theme-package and allowing Firefox (or, I assume, any other web browser) to open the download with the default handler for this type, which is the Theme Installer. This ties in with the longer term plan we&#8217;re thinking of, which is to remove the extra themes from gnome-themes and place them (and more) on the website. Users would then install the themes straight from the theme manager or from a browser. Hylke&#8217;s already <a href="http://mail.gnome.org/archives/gnomecc-list/2009-November/msg00014.html">posted</a> some mockups to the control center mailing list on what the new theme manager may look like.</p>
<p>Now, if only there was a nice way to set your desktop background from the browser, without going through right click menus&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/11/23/art-gnome-org-updates/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>A new Clutter Widget Toolkit</title>
		<link>http://blogs.gnome.org/thos/2009/11/18/a-new-clutter-widget-toolkit/</link>
		<comments>http://blogs.gnome.org/thos/2009/11/18/a-new-clutter-widget-toolkit/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 14:12:05 +0000</pubDate>
		<dc:creator>thos</dc:creator>
				<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://blogs.gnome.org/thos/?p=349</guid>
		<description><![CDATA[If you&#8217;ve been following Moblin development closely, you&#8217;ll know that we have been using a library called &#8220;Nbtk&#8221; (netbook toolkit) to implement the common user interface elements. People have been quite interested in this, since it is based on Clutter. However, Nbtk was developed with very short term goals, so that we could accomplish the [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following <a href="http://www.moblin.org">Moblin</a> development closely, you&#8217;ll know that we have been using a library called &#8220;Nbtk&#8221; (netbook toolkit) to implement the common user interface elements. People have been quite interested in this, since it is based on <a href="http://www.clutter-project.org">Clutter</a>. However, Nbtk was developed with very short term goals, so that we could accomplish the <a href="http://www.youtube.com/watch?v=vsCpIeLLoT8">Moblin 2.0 UI</a> as quickly as possible. Now that Moblin 2.0 (and indeed, 2.1) is out, we have some time before 2.2 to start thinking about a more serious toolkit.</p>
<p><strong>The Moblin Toolkit</strong></p>
<p>The first goal was to rename the library to something less specific to the &#8220;netbook&#8221; platform. We chose &#8216;mx&#8217; as the name space, because the goal of toolkit is to support the <strong>M</strong>oblin User E<strong>x</strong>perience. Mx provides a set of standard user interface elements, including buttons, progress bars, tooltips, scroll bars and others. It also implements some standard layout managers, although some of these will be available in Clutter itself when Clutter 1.2 is available. One other interesting feature is the possibility of setting style properties from a <a href="http://www.w3.org/Style/CSS/">css</a>-like file.</p>
<p><strong>What&#8217;s New</strong></p>
<p>Followers of Nbtk will be interested to know what&#8217;s new compared to Nbtk. The latest additions include:</p>
<ul>
<li> <strong>notebook</strong> &#8211; a multi-child container that shows only one child at a time (similar to a slide show). The notebook widget itself does not implement tabs, but these can easily be added by hooking it up to the new button-group widget.
<li> <strong>button group</strong> &#8211; allows buttons to be grouped so that the toggle state can be mutually exclusive across the buttons in the group (e.g. such as a group of radio buttons might behave.). Also features a property to allow no buttons to be toggled if desired.
<li> <strong>toggle widget</strong> &#8211; a widget that implements a boolean state and looks similar to a light switch or slider switch. This is a Clutter version of the MxGtkLightSwitch already available. The advantages of the Clutter version are that it provides better animated feedback on user interaction.
</ul>
<p>There have also been some behind the scenes clean ups, including:</p>
<ul>
<li> re-written table layout algorithm &#8211; this had much better support for correct minimum and preferred sizes, especially related to columns spanning.
<li> the stylable interface is now much simpler and has less dependencies
<li> the Widget base class implements hover and active states (if the actor is reactive)
<li> all constructors return ClutterActor, since this is the most useful base type.
</ul>
<p><strong>Try It</strong></p>
<p>Although the new project started as a branch in the Nbtk source code repository, it now has it&#8217;s own git repository at <a href="http://git.moblin.org/cgit.cgi/mx/">git.moblin.org</a>. I am also making tarball releases on the brand new <a href="http://download.moblin.org/sources/mx/">download.moblin.org</a>. I have released a first version for testing purposes and it is important to note that the project is <strong>not</strong> API stable yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.gnome.org/thos/2009/11/18/a-new-clutter-widget-toolkit/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
