<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.meego.com/skins/common/feed.css?270"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.meego.com/index.php?title=Special:Contributions/Btdrucke&amp;feed=atom&amp;limit=50&amp;target=Btdrucke&amp;year=&amp;month=</id>
		<title>MeeGo wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.meego.com/index.php?title=Special:Contributions/Btdrucke&amp;feed=atom&amp;limit=50&amp;target=Btdrucke&amp;year=&amp;month="/>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Special:Contributions/Btdrucke"/>
		<updated>2013-05-19T23:02:25Z</updated>
		<subtitle>From MeeGo wiki</subtitle>
		<generator>MediaWiki 1.16.2</generator>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-27T05:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Component Migration Phase III */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
[DONE]&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Components Migration Phase II==&lt;br /&gt;
[DONE]&lt;br /&gt;
* Most duplicated QML components from MeeGo.Labs have been deprecated (see [[#Components Affected by Phase II]])&lt;br /&gt;
* Duplicated C++ components from MeeGo.Labs are not yet depreciated.&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase (see [[#Components Migration Phase III]] for information regarding these components)&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
===Components Affected by Phase II===&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||&amp;lt;same&amp;gt;                ||ModalSpinner can be used for the full-screen use case&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase III==&lt;br /&gt;
[DONE]&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' When using the meego-ux-components Window.qml: the id of your Window.qml main page item must always be 'window'. This is necessary for the AppPages to set values (like title) in the Window.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
! Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || bool showToolBarSearch&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Migration from MouseArea to GestureMouseArea ===&lt;br /&gt;
{|&lt;br /&gt;
  Most components and Apps are using MouseAreas instead of GestureAreas right now. In order to help on the first step of migration one can use the new GestureMouseArea from the MeeGo.Labs.Components. This Component simulated (nearly) the API of a MouseArea, but using the GestureArea internally for recognition of gestures, with the advantage to have a certain fuzziness in the opposite to the MouseArea.&lt;br /&gt;
&lt;br /&gt;
  This component will be deprecated once, because the goal is to use the GestureArea everywhere as standard for Gestures.&lt;br /&gt;
&lt;br /&gt;
==== Differences in the API ====&lt;br /&gt;
&lt;br /&gt;
There is basically one big difference in the API of GestureMouseArea: Instead of an MouseEvent object, all signals are pushing 3 paramter: int mouseX and int mouseY for the position and a bool wasHeld for regocnition of a TapAndHold Gesture&lt;br /&gt;
&lt;br /&gt;
==== Migration Example ====&lt;br /&gt;
&lt;br /&gt;
using the MouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
&lt;br /&gt;
MouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.x = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.y = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using the GestureMouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
import MeeGo.Labs.Components 0.1&lt;br /&gt;
&lt;br /&gt;
GestureMouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-27T05:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Component Migration Phase I */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
[DONE]&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Components Migration Phase II==&lt;br /&gt;
[DONE]&lt;br /&gt;
* Most duplicated QML components from MeeGo.Labs have been deprecated (see [[#Components Affected by Phase II]])&lt;br /&gt;
* Duplicated C++ components from MeeGo.Labs are not yet depreciated.&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase (see [[#Components Migration Phase III]] for information regarding these components)&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
===Components Affected by Phase II===&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||&amp;lt;same&amp;gt;                ||ModalSpinner can be used for the full-screen use case&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase III==&lt;br /&gt;
Was scheduled to end April 29, now May 6th.  In this phase we deprecate MeeGo.Labs Window and ApplicationPage components to be replace by MeeGo.Components Window and AppPage.&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' When using the meego-ux-components Window.qml: the id of your Window.qml main page item must always be 'window'. This is necessary for the AppPages to set values (like title) in the Window.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
! Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || bool showToolBarSearch&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Migration from MouseArea to GestureMouseArea ===&lt;br /&gt;
{|&lt;br /&gt;
  Most components and Apps are using MouseAreas instead of GestureAreas right now. In order to help on the first step of migration one can use the new GestureMouseArea from the MeeGo.Labs.Components. This Component simulated (nearly) the API of a MouseArea, but using the GestureArea internally for recognition of gestures, with the advantage to have a certain fuzziness in the opposite to the MouseArea.&lt;br /&gt;
&lt;br /&gt;
  This component will be deprecated once, because the goal is to use the GestureArea everywhere as standard for Gestures.&lt;br /&gt;
&lt;br /&gt;
==== Differences in the API ====&lt;br /&gt;
&lt;br /&gt;
There is basically one big difference in the API of GestureMouseArea: Instead of an MouseEvent object, all signals are pushing 3 paramter: int mouseX and int mouseY for the position and a bool wasHeld for regocnition of a TapAndHold Gesture&lt;br /&gt;
&lt;br /&gt;
==== Migration Example ====&lt;br /&gt;
&lt;br /&gt;
using the MouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
&lt;br /&gt;
MouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.x = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.y = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using the GestureMouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
import MeeGo.Labs.Components 0.1&lt;br /&gt;
&lt;br /&gt;
GestureMouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-27T05:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Components Migration Phase II */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
Done as of April 9th.&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Components Migration Phase II==&lt;br /&gt;
[DONE]&lt;br /&gt;
* Most duplicated QML components from MeeGo.Labs have been deprecated (see [[#Components Affected by Phase II]])&lt;br /&gt;
* Duplicated C++ components from MeeGo.Labs are not yet depreciated.&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase (see [[#Components Migration Phase III]] for information regarding these components)&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
===Components Affected by Phase II===&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||&amp;lt;same&amp;gt;                ||ModalSpinner can be used for the full-screen use case&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase III==&lt;br /&gt;
Was scheduled to end April 29, now May 6th.  In this phase we deprecate MeeGo.Labs Window and ApplicationPage components to be replace by MeeGo.Components Window and AppPage.&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
'''IMPORTANT:''' When using the meego-ux-components Window.qml: the id of your Window.qml main page item must always be 'window'. This is necessary for the AppPages to set values (like title) in the Window.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
! Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || bool showToolBarSearch&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Migration from MouseArea to GestureMouseArea ===&lt;br /&gt;
{|&lt;br /&gt;
  Most components and Apps are using MouseAreas instead of GestureAreas right now. In order to help on the first step of migration one can use the new GestureMouseArea from the MeeGo.Labs.Components. This Component simulated (nearly) the API of a MouseArea, but using the GestureArea internally for recognition of gestures, with the advantage to have a certain fuzziness in the opposite to the MouseArea.&lt;br /&gt;
&lt;br /&gt;
  This component will be deprecated once, because the goal is to use the GestureArea everywhere as standard for Gestures.&lt;br /&gt;
&lt;br /&gt;
==== Differences in the API ====&lt;br /&gt;
&lt;br /&gt;
There is basically one big difference in the API of GestureMouseArea: Instead of an MouseEvent object, all signals are pushing 3 paramter: int mouseX and int mouseY for the position and a bool wasHeld for regocnition of a TapAndHold Gesture&lt;br /&gt;
&lt;br /&gt;
==== Migration Example ====&lt;br /&gt;
&lt;br /&gt;
using the MouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
&lt;br /&gt;
MouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.x = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouse.x&lt;br /&gt;
       aObject.y = mouse.y&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using the GestureMouseArea:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import Qt 4.7&lt;br /&gt;
import MeeGo.Labs.Components 0.1&lt;br /&gt;
&lt;br /&gt;
GestureMouseArea {&lt;br /&gt;
   id: mouseArea&lt;br /&gt;
   anchors.fill: parent&lt;br /&gt;
&lt;br /&gt;
   onClicked: {&lt;br /&gt;
       aProperty = true&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   onPressAndHold: {&lt;br /&gt;
       aProperty = false&lt;br /&gt;
       aObject.x = mouseX&lt;br /&gt;
       aObject.y = mouseY&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-05-27T05:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Adding MeeGo UX Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
==API Documentation==&lt;br /&gt;
API docs are generated automatically from the tip of the git repository at http://apidocs.meego.com.&lt;br /&gt;
&lt;br /&gt;
==Basic Tutorials==&lt;br /&gt;
There are [[MeeGo UX Tutorials|basic tutorials for the MeeGo UX components]].&lt;br /&gt;
&lt;br /&gt;
==Installing MeeGo UX Components==&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
===Using Zypper===&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
===From a Source Package===&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
===From a Git Repo===&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
==Examples of Using Components==&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties.  See [[MeeGo_UX_Components_WidgetGallery|screen shots]].&lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
==Using Components in a New Application==&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
==Adding MeeGo UX Components==&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
==Migration to Components==&lt;br /&gt;
[[Components_Migration|Guides and roadmap]] for migrating from MeeGo.Labs.Components to MeeGo.Components&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Qml]]&lt;br /&gt;
[[Category:Qt]]&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-05-27T05:20:05Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* MeeGo Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
** [[Error Management]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
* [[Meego IT]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Structure and Governance ==&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* Bi-weekly [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-05-27T05:04:21Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* API Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Overview==&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
==API Documentation==&lt;br /&gt;
API docs are generated automatically from the tip of the git repository at http://apidocs.meego.com.&lt;br /&gt;
&lt;br /&gt;
==Basic Tutorials==&lt;br /&gt;
There are [[MeeGo UX Tutorials|basic tutorials for the MeeGo UX components]].&lt;br /&gt;
&lt;br /&gt;
==Installing MeeGo UX Components==&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
===Using Zypper===&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
===From a Source Package===&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
===From a Git Repo===&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
==Examples of Using Components==&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties.  See [[MeeGo_UX_Components_WidgetGallery|screen shots]].&lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
==Using Components in a New Application==&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
==Adding MeeGo UX Components==&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
[[Category:Qml]]&lt;br /&gt;
[[Category:Qt]]&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-02T17:33:54Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
Done as of April 9th.&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Components Migration Phase II==&lt;br /&gt;
This was originally scheduled to end April 22 but has been delayed to May 3rd&lt;br /&gt;
* Most duplicated components from MeeGo.Labs will be deprecated (see [[#Components Affected by Phase II]])&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase (see [[#Components Migration Phase III]] for information regarding these components)&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
===Components Affected by Phase II===&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||&amp;lt;same&amp;gt;                ||ModalSpinner can be used for the full-screen use case&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase III==&lt;br /&gt;
Was scheduled to end April 29, now May 6th.  In this phase we deprecate MeeGo.Labs Window and ApplicationPage components to be replace by MeeGo.Components Window and AppPage.&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
! Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-02T16:56:30Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Phase II (schedule to end April 22) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
Done as of April 9th.&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Components Migration Phase II==&lt;br /&gt;
This was originally scheduled to end April 22 but has been delayed to May 3rd&lt;br /&gt;
* Most duplicated components from MeeGo.Labs will be deprecated (see [[#Components Affected by Phase II]])&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase (see [[#Components Migration Phase III]] for information regarding these components)&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
===Components Affected by Phase II===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||&amp;lt;same&amp;gt;                ||ModalSpinner can be used for the full-screen use case&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Phase III (scheduled to end April 29)==&lt;br /&gt;
* Window and AppPage components&lt;br /&gt;
&lt;br /&gt;
===Window, Book and Page===&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml:====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
!  Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-02T16:49:30Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Phase I (done April 8th) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Component Migration Phase I==&lt;br /&gt;
Done as of April 9th.&lt;br /&gt;
&lt;br /&gt;
* Deprecated MeeGo.Media pickers (image/video/music)&lt;br /&gt;
* Deprecated MeeGo.Labs.Components Date and Time pickers&lt;br /&gt;
* NB: Contacts picker will remain in MeeGo.Labs for the time being&lt;br /&gt;
&lt;br /&gt;
==Phase II (schedule to end April 22)==&lt;br /&gt;
* all other duplicated components (see table below)&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase&lt;br /&gt;
* a Window2.qml is provided to test the new orientation behaviour&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
ATTENTION: The old components (see table below) from meegolabs will be removed on Tuesday(April 20) morning around 8:00 pacific time!&lt;br /&gt;
&lt;br /&gt;
===Phase II Components Migration:===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||Spinner               ||No API changes&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Phase III (scheduled to end April 29)==&lt;br /&gt;
* Window and AppPage components&lt;br /&gt;
&lt;br /&gt;
===Window, Book and Page===&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml:====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
!  Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-05-02T16:48:03Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Migration of Components from MeeGo.Labs.Components to MeeGo.Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some UX components exists in multiple repositories (repo meego-ux-components / namespace MeeGo.Components, repo meegolabs-ux-components / namespace MeeGo.Labs.Components and repo meego-media-components / namespace MeeGo.Media).  It is confusing and difficult to maintain various forked versions of code.  The solution is to deprecate duplicate versions so that we have only a single copy of each component.&lt;br /&gt;
&lt;br /&gt;
In many cases, this mean applications need to replace components from MeeGo.Labs.Components and MeeGo.Media with their counterparts from MeeGo.Components, making API changes as necessary.  In some cases, code has been copied to MeeGo.Components prematurely and will be deprecated in favor of the MeeGo.Labs version.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
==Phase I (done April 8th)==&lt;br /&gt;
* deprecate Media pickers (image/video/music)&lt;br /&gt;
* deprecate Date and Time pickers&lt;br /&gt;
* Contacts picker will remain in meegolabs-ux-components for the time being&lt;br /&gt;
&lt;br /&gt;
==Phase II (schedule to end April 22)==&lt;br /&gt;
* all other duplicated components (see table below)&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase&lt;br /&gt;
* a Window2.qml is provided to test the new orientation behaviour&lt;br /&gt;
&lt;br /&gt;
Since most of the meego-ux-components depend on signals from the new meego-ux-components Window.qml, some of them will have issues when being used with the meegolabs Window.qml. The ModalContextMenu is our main problem child here. &lt;br /&gt;
We have added a Window2.qml to the meegolabs repo which is basically the meegolabs Window.qml, but with the orientation behaviour of the new meego-ux-components Window.qml. Just add the '2' behind Window to use it, no further API changes are necessary.&lt;br /&gt;
The ModalContextmenu called in the content area will now stay on screen. Of course Window2.qml does not have the full functionality of the meego-ux-components Window.qml, so there will still be a few bugs until you switch to the meego-ux-components Window.qml.&lt;br /&gt;
Bugs we found after a quick testing:&lt;br /&gt;
* the book and action menu context menus will still leave the screen/ appear in the wrong position when the orientation changes while they are visible.&lt;br /&gt;
* Some apps create their own status bar and tool bar:&lt;br /&gt;
** the panels view has two status bars.&lt;br /&gt;
** the photo apps detail page always shows its search bar.&lt;br /&gt;
These bugs should not be filed and will not be fixed since Window2.qml is only a preliminary solution for testing only!&lt;br /&gt;
&lt;br /&gt;
ATTENTION: The old components (see table below) from meegolabs will be removed on Tuesday(April 20) morning around 8:00 pacific time!&lt;br /&gt;
&lt;br /&gt;
===Phase II Components Migration:===&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||Spinner               ||No API changes&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Phase III (scheduled to end April 29)==&lt;br /&gt;
* Window and AppPage components&lt;br /&gt;
&lt;br /&gt;
===Window, Book and Page===&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path in your application. You&lt;br /&gt;
can find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept.&lt;br /&gt;
&lt;br /&gt;
Nonetheless some examples:&lt;br /&gt;
&lt;br /&gt;
====Example for a Page.qml====&lt;br /&gt;
The AppPage is the content that's shown inside an apps window. Statusbar and toolbar are provided by the Window.qml as well as a default action menu. The pageTitle will appear in the Windows toolbar.&lt;br /&gt;
 AppPage {&lt;br /&gt;
    id: mainPage&lt;br /&gt;
 &lt;br /&gt;
    pageTitle: &amp;quot;My first page&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    actionMenuModel: [ &amp;quot;First choice&amp;quot;, &amp;quot;Second choice&amp;quot; ]&lt;br /&gt;
    actionMenuPayload: [ 1, 2 ]&lt;br /&gt;
 &lt;br /&gt;
    onActionMenuTriggered: {&lt;br /&gt;
        // an action menu entry was clicked, action menu hidden&lt;br /&gt;
        // and '1' or '2' returned in selectedItem&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
You can call addPage(&amp;lt;nextPageName&amp;gt;) to switch to the next page.&lt;br /&gt;
 AppPage {&lt;br /&gt;
 (...)&lt;br /&gt;
 Component { id: nextPage; SubPage{} }&lt;br /&gt;
 &lt;br /&gt;
 onClicked: { addPage( nextPage ) }&lt;br /&gt;
 (...)&lt;br /&gt;
 }&lt;br /&gt;
The Window.qml provides a back button in the toolbar to get back to the previous page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Example for a MainWindow.qml:====&lt;br /&gt;
The Window is the applications main item. It has a book menu to switch between main pages.&lt;br /&gt;
 Window {&lt;br /&gt;
    id: window&lt;br /&gt;
 &lt;br /&gt;
    bookMenuModel: [ qsTr(&amp;quot;Page 1&amp;quot;) , qsTr(&amp;quot;Page 2&amp;quot;) ]&lt;br /&gt;
    bookMenuPayload: [ book1Component,  book2Component ]&lt;br /&gt;
 &lt;br /&gt;
    Component.onCompleted: {&lt;br /&gt;
        console.log(&amp;quot;load MainPage&amp;quot;)&lt;br /&gt;
        switchBook( book1Component )&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    Component { id: book1Component; Page {} }&lt;br /&gt;
    Component { id: book2Component; Page2 {} }&lt;br /&gt;
 }&lt;br /&gt;
===Phase III major API changes for AppPage===&lt;br /&gt;
{|&lt;br /&gt;
!  Meegolabs ApplicationPage&lt;br /&gt;
! meego-ux-components AppPage&lt;br /&gt;
|-&lt;br /&gt;
| variant windowModel           || -&lt;br /&gt;
|-&lt;br /&gt;
| variant windowFilterPayload   || -&lt;br /&gt;
|-&lt;br /&gt;
| string title                  || string pageTitle&lt;br /&gt;
|-&lt;br /&gt;
| item content                  || -&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent              || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool fullscreen               || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool showSearch               || -&lt;br /&gt;
|-&lt;br /&gt;
| bool disableSearch            || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showToolbar              || -&lt;br /&gt;
|-&lt;br /&gt;
| bool hasBack                  || -&lt;br /&gt;
|-&lt;br /&gt;
| int toolbarHeight             || -&lt;br /&gt;
|-&lt;br /&gt;
| bool moving                   || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData       || -&lt;br /&gt;
|-&lt;br /&gt;
| int type                      || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuContent             || variant actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| alias menuItem                || variant actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                             || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| alias menuWidth               || -&lt;br /&gt;
|-&lt;br /&gt;
| alias menuHeight              || -&lt;br /&gt;
|-&lt;br /&gt;
| function closeMenu()          || -&lt;br /&gt;
|-&lt;br /&gt;
| signal close()                || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                             || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| signal addApplicationPage(variant component) || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle)  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Phase III major API changes for Window:===&lt;br /&gt;
{|&lt;br /&gt;
! meegolabs Window&lt;br /&gt;
! meego-ux Window&lt;br /&gt;
|-&lt;br /&gt;
| bool foreground         || bool isActiveWindow&lt;br /&gt;
|-&lt;br /&gt;
| bool transparent        || -&lt;br /&gt;
|-&lt;br /&gt;
| string title            || string toolBarTitle&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterModel    || string[] bookMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| string[] filterPayload  || string[] bookMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string bookMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool bookMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuModel&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string[] actionMenuPayload&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string actionMenuTitle&lt;br /&gt;
|-&lt;br /&gt;
| -                       || bool actionMenuHighlightSelection&lt;br /&gt;
|-&lt;br /&gt;
| int filterMenuWidth     || -&lt;br /&gt;
|-&lt;br /&gt;
| signal filterTriggered(int index, variant payload) || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuTriggered( variant selectedItem )&lt;br /&gt;
|-&lt;br /&gt;
| -                       || signal actionMenuIconClicked( int mouseX, int mouseY )&lt;br /&gt;
|-&lt;br /&gt;
| Component applicationPage || -&lt;br /&gt;
|-&lt;br /&gt;
| alias currentApplication || -&lt;br /&gt;
|-&lt;br /&gt;
| variant applicationData || -&lt;br /&gt;
|-&lt;br /&gt;
| item content: innerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| item container: outerContent || -&lt;br /&gt;
|-&lt;br /&gt;
| int orientation || int orientation&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationLocked || bool isOrientationLocked&lt;br /&gt;
|-&lt;br /&gt;
| bool orientationTransitionEnabled || -&lt;br /&gt;
|-&lt;br /&gt;
| -                       || string lockOrientationIn&lt;br /&gt;
|-&lt;br /&gt;
| bool fullScreen         || bool fullScreen&lt;br /&gt;
|-&lt;br /&gt;
| bool fullContent        || bool fullContent&lt;br /&gt;
|-&lt;br /&gt;
| bool showtoolbar        || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showsearch         || -&lt;br /&gt;
|-&lt;br /&gt;
| signal search(string needle) || signal search(string needle)&lt;br /&gt;
|-&lt;br /&gt;
| alias statusBar         || -&lt;br /&gt;
|-&lt;br /&gt;
| color backgroundColor   || - &lt;br /&gt;
|-&lt;br /&gt;
| color sidepanelBackgroundColor || -&lt;br /&gt;
|-&lt;br /&gt;
| bool showStartupAnimation || -&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Jketreno/scaling</id>
		<title>User:Jketreno/scaling</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Jketreno/scaling"/>
				<updated>2011-04-26T08:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* thoughts on asset theme scaling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''THIS PAGE IS A WORK IN PROGRESS AND DOES NOT NECESSARILY CORRESPOND TO CURRENT REALITY'''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
This document provides an overview of how applications can be written to support the broadest range of physical screen characteristics with the least amount of work by the application authors and graphic designers.&lt;br /&gt;
&lt;br /&gt;
The intent is to provide a means of allowing applications to be written in a density independent manner, where the physical size of UI elements is consistent across a wide spectrum of devices.  As automatic software scaling and conversion can not know the internal meaning of a graphics element (which pixels are important), pixel based assets must be designed for the lowest targeted pixels-per-inch (PPI).  In this manner, system software can scale up to the actual device pixel density.&lt;br /&gt;
&lt;br /&gt;
By following the guidelines in this document, application creators can create a single application package which will work across all devices, varying both in pixel density and physical screen sizes.&lt;br /&gt;
&lt;br /&gt;
'''Lower priority:'''  In addition to the varying densities targeted by MeeGo, the system should support various &amp;quot;distance-from-eye&amp;quot; scenarios as well as varying &amp;quot;input device resolution&amp;quot;.  An example of the former is a status bar on a tablet that is held 6-8&amp;quot; farther from the eyes than a handset--this may require that the status bar and fonts are slightly larger to maintain legibility.  This may be achieved by providing a readability scaling factor used elements not intended to be manipulated via touch.   An example of the later (varying input device resolution) is a scaling factor applied to the specified physical size of an element to accommodate higher precision devices (mice and stylus) as well as lower precision devices (gyro/accelerometer remotes, thumb-stick remotes, etc.)&lt;br /&gt;
&lt;br /&gt;
==Target Resolutions and PPI==&lt;br /&gt;
The following image illustrates a small application running across the full range of screen sizes and densities currently supported by MeeGo.  These images have been scaled to provide consistent relative sizing in the image.  This was done by converting 1:1 pixel images to a virtual pixel density of 160ppi.  Click the image to go to the higher resolution version.&lt;br /&gt;
[[Image:meego-units-example.png|center|thumb|400px|Density Independent Rendered Sample]]&lt;br /&gt;
&lt;br /&gt;
A small 1:1 pixel crop from the highest density display (269ppi) and the lowest density (113ppi) can be seen here.  When placed on the actual devices, the toolbar, buttons, and fonts would be physically the same size.&lt;br /&gt;
[[Image:meego-units-example-1to1.png|center|thumb|400px|1:1 Pixel Comparison]]&lt;br /&gt;
&lt;br /&gt;
As can be seen in the table below, touch enabled MeeGo user experiences target two major physical screen size classifications; tablet (&amp;gt;7&amp;quot;) and handset (~4&amp;quot;).  In addition to the varying physical dimensions of the screens, the devices have various PPIs [dots-per-inch -- also referred to as PPI or pixels-per-inch].  Based on the expected frequency of deployment, we are focusing our &amp;quot;pixel perfect&amp;quot; UIs for only a select set of DPIs and screen resolutions.  &lt;br /&gt;
&lt;br /&gt;
==Current Device Resolutions==&lt;br /&gt;
The following provides examples of potential screen profiles which should be supported by MeeGo:&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Handset&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;800x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;233&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4.3&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;960x540&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;256&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3.67&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;864x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;269&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16.2:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tablet&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11.6&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1360x768&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;135&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;151&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;7&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;216&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density Industry list of display densities]&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
==Getting the code==&lt;br /&gt;
 git clone '''todo -- where is the code repository???'''&lt;br /&gt;
 cd meego-units&lt;br /&gt;
 qmake&lt;br /&gt;
 make &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
==accessing the units==&lt;br /&gt;
To start, you need to import the MeeGo Units plug-in:&lt;br /&gt;
 import Qt 4.7&lt;br /&gt;
 import MeeGo.units 1.0&lt;br /&gt;
This loads the libmeegounitsplugin adds a new QML type called 'MeeGoUnits'  Since plug-ins do not have direct access to the global object namespace, the plug-in can't automatically populate a top level namespace with a 'Units' element--so you must instantiate it within your top level widget:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
At this point, you can now reference the unit conversion properties via '''units'''.  The properties exposed are '''mm''', '''inch''', '''vp''', and '''density'''.  All three are implemented as properties with notification signals, so if the underlying device PPI changes, all UI elements can be re-laid out.  This is useful when moving (at run-time) an application from a small handset screen to a larger display (for example via an attached HDMI)&lt;br /&gt;
&lt;br /&gt;
Extending the above example to set the rectangle size to be 10cm x 5cm:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
     width: units.mm2px(100.0)&lt;br /&gt;
     height: units.mm2px(50.0)&lt;br /&gt;
 }&lt;br /&gt;
Using the conversion properties is pretty straight forward and works as you would expect.  The following instantiates a 1cm x 1cm rectangle, offset from the top left of its parent by 1cm:&lt;br /&gt;
    Rectangle {&lt;br /&gt;
        x: units.mm2px(10.0)&lt;br /&gt;
        y: units.mm2px(10.0)&lt;br /&gt;
        width: units.mm2px(10.0)&lt;br /&gt;
        height: units.mm2px(10.0)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
==a note on rounding==&lt;br /&gt;
Since the value of the properties returned by MeeGoUnits are non-integer (for example, units.mm might be '3.66667'), the result of most operations with the units will result in non-integer numbers as well.  Due to the cast of real to int, you may encounter rounding problems which typically manifest themselves as QML Items not always lining up.  This can be remedied by using the mm2px() conversion method exposed by the units object vs. using units.mm directly.&lt;br /&gt;
&lt;br /&gt;
The following shows a simplified example which can lead to rounding problems:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: 20.0 * units.mm&lt;br /&gt;
    height: 10.0 * units.mm&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
Better code:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: units.mm2px(20.0)&lt;br /&gt;
    height: units.mm2px(10.0)&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==text==&lt;br /&gt;
 Text {&lt;br /&gt;
    font.pixelSize: units.mm2px(2.5) // create text that is 2.5mm tall&lt;br /&gt;
    text: &amp;quot;2.5mm font&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==images==&lt;br /&gt;
 Image {&lt;br /&gt;
     source: &amp;quot;text-bg.jpg&amp;quot;&lt;br /&gt;
     width: units.mm2px(9.5)&lt;br /&gt;
     height: units.mm2px(6.0)&lt;br /&gt;
     sourceSize.width: units.mm2px(9.5)&lt;br /&gt;
     sourceSize.height: units.mm2px(6.0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==vector vs. raster==&lt;br /&gt;
==naming conventions==&lt;br /&gt;
==resource sharing==&lt;br /&gt;
==scaling==&lt;br /&gt;
&amp;lt;!--....&lt;br /&gt;
The software automatically adjusts and scales the UI elements and assets to account for varying physical sizes and PPIs.  A typical problem with automatic system rescaling of images and UI widgets is that the resulting scaled interface may not look ideal.  In the event there is a popular product category that an application creator wants to target, the system provides a mechanism for the creator to provide PPI specific assets which will override the system scaling and be used for those target PPIs.  The approach used is similar to mip-mapping of textures in 3D applications, where the application creator can provide a myriad of target resolutions and PPIs and the software will interpolate between the nearest PPI and size versions to create new sizes and versions as needed.&lt;br /&gt;
...--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Jketreno/theme-assets</id>
		<title>User:Jketreno/theme-assets</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Jketreno/theme-assets"/>
				<updated>2011-04-26T08:24:08Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* thoughts on asset theme scaling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''THIS PAGE IS A WORK IN PROGRESS AND DOES NOT NECESSARILY CORRESPOND TO CURRENT REALITY'''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
The assets used in the visual design of our applications can be broken down into categories:&lt;br /&gt;
&lt;br /&gt;
* Icons assets&lt;br /&gt;
* Non-Icon assets&lt;br /&gt;
&lt;br /&gt;
Icons are typically fixed size and connote a contextual meaning.   Non-icon assets are used as graphical filler; they provide the backgrounds, borders, and color but do not add any specific meaning.&lt;br /&gt;
&lt;br /&gt;
This document covers the methodology and work-flow used by MeeGo to order to provide the highest quality visual experience on a broad spectrum of devices while developing icons and non-icon assets.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the reader is familiar with Density Independence.  For a general overview of that topic, see [[~jketreno/scaling|Density Independence]].&lt;br /&gt;
&lt;br /&gt;
=Graphical Theme Assets Details=&lt;br /&gt;
==Pixel vs. Vector==&lt;br /&gt;
There are two formats in which graphical assets can be provided for MeeGo: '''pixel''' and '''vector'''.&lt;br /&gt;
&lt;br /&gt;
'''Pixel''' (sometimes referred to as raster) assets specify the ARGB color values of each individual pixel.  The quality of what the user sees on their display is heavily dependent on the display density for which the graphical asset was designed.  When designed for a 300DPI screen, an icon intended to be one 1/2&amp;quot; x 1/2&amp;quot; will need to be 150x150 pixels.  When viewed on a 150DPI screen, in order to maintain the same physical size, the asset will need to be scaled down by 50%.  The MeeGo theming image provider will perform this scaling for applications, using a smooth scaling algorithm to reduce artifacts.  Designing for a high DPI and scaling down is the recommended technique for pixel based graphics.&lt;br /&gt;
&lt;br /&gt;
'''Vector''' (sometimes referred to as scalable) assets are specified by paths defined by mathematical equations and are effectively resolution independent which means they can be rasterized at varying densities and sizes without introducing scaling artifacts.&lt;br /&gt;
&lt;br /&gt;
===Virtual Pixel===&lt;br /&gt;
As vector graphics are density independent, there needs to be a way to map the units used within the vector graphic to physical pixels during rasterization.  MeeGo accomplishes this by using a default virtual density of 330 pixels per inch for vector graphics.  This allows the vector graphic to use any real world unit of measure desired while allowing  [[~jketreno/theme-assets#Border_Images|Border Images]] (which may be relative to the rasterized vector graphic) to be specified in a density independent manner.&lt;br /&gt;
&lt;br /&gt;
==Recommended usages for pixel and vector assets==&lt;br /&gt;
Icons, which are typically only scaled to maintain a consistent physical size on the display (for example a button icon which should always be 8mm x 8mm, regardless of the device DPI) should be provided as a pixel asset.  If the asset is designed for a high density display, there will be minimal artifacts when scaled down to lower density displays.  MeeGo will automatically scale pixel assets to new sizes as needed.  See the section on [[~jketreno/theme-assets#dynamic asset scaling|Dynamic Asset Scaling]] for details on how this is accomplished.&lt;br /&gt;
&lt;br /&gt;
Non-icon assets, which may be arbitrarily scaled in X and Y dimension, are best provided as a vector graphic.  This is to reduce banding and aliasing artifacts which would typically occur in gradients, drop shadows, and other effects.  &lt;br /&gt;
&lt;br /&gt;
MeeGo provides a caching mechanism to alleviate the cost of rasterizing a vector asset.&lt;br /&gt;
&lt;br /&gt;
===Downscaling Example===&lt;br /&gt;
The following example illustrates a possible pitfall if fine line details are used when drawing pixel graphics at higher DPI screens &lt;br /&gt;
&lt;br /&gt;
[[File:downscaling-example.png|border|center|148px|Downscaling from 330DPI to 165DPI]]&lt;br /&gt;
Above illustrates scaling of a pixel asset from 330DPI to various DPIs.&lt;br /&gt;
&lt;br /&gt;
[[File:scalable-example.png|frame|center|446px|Downscaling a 9mm x 9mm asset from 330DPI to 110DPI]]&lt;br /&gt;
&lt;br /&gt;
===Upscaling Example===&lt;br /&gt;
The effect of upscaling a pixel vs. vector asset is shown here:&lt;br /&gt;
&lt;br /&gt;
[[File:scalable-vs-pixel.png|border|center|512px|Pixel vs. Scalable]]&lt;br /&gt;
&lt;br /&gt;
In the above example the 32x32 red circle, with a one pixel border, was scaled to be four times larger.  Applying a cubic filter helps to reduce aliasing but muddies the result.  &lt;br /&gt;
&lt;br /&gt;
The vector asset is very clean at the new target size.&lt;br /&gt;
&lt;br /&gt;
There are a few reasons why vector graphics are not used everywhere:&lt;br /&gt;
&lt;br /&gt;
# Time -- Some artistic techniques are difficult to express in terms of paths, fills, and filters.  Requiring all assets to always be provided in a scalable form places undo restrictions on the graphic designer.&lt;br /&gt;
# Compatibility -- some paths, fills, and filters do not produce the same results in the tools building them and the software used in MeeGo to rasterize the asset.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Asset Scaling===&lt;br /&gt;
&lt;br /&gt;
'''todo''' Describe the logic flow for pixel asset priority, vector priority, scaling, interleaving, etc.&lt;br /&gt;
&lt;br /&gt;
==Icon Assets==&lt;br /&gt;
===Editing and naming conventions===&lt;br /&gt;
Icons for MeeGo have two states: &lt;br /&gt;
* normal&lt;br /&gt;
* active&lt;br /&gt;
Providing a separate for each state is error prone and inefficient.  For designers, it requires that multiple files be opened and managed visually which makes quick changes and uniformity more difficult.  For loading efficiency, the more files that have to be opened and read, the slower the system behaves.  &lt;br /&gt;
&lt;br /&gt;
To improve on this, MeeGo icons provide both states in a single graphical asset.  QML elements which use the Icons for button states rely on other means (background colors, alpha overlays, etc.) to provide additional state visualizations (mainly selected and disabled.)&lt;br /&gt;
&lt;br /&gt;
Eventually MeeGo will provide an icon tile management layer to preload all rasterized assets into a large texture set which can be loaded once and then sliced at run-time.&lt;br /&gt;
====Pixel based assets====&lt;br /&gt;
For pixel based icon assets the following naming convention is used:&lt;br /&gt;
 icon-NAME-multistate.EXTENSION&lt;br /&gt;
Where:&lt;br /&gt;
* '''NAME''' is the icon name, for example &amp;quot;close&amp;quot;&lt;br /&gt;
* '''EXTENSION''' is one of the recognized image extensions.  While the system supports both PNG and JPG, it is recommended that only PNG be used.&lt;br /&gt;
&lt;br /&gt;
In terms of a regular expression, the above maps to:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;icon-[[:alnum:]]+multistate.(png|jpg)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The graphical asset is laid out internally such that the pixel width of the individual icon is the width of the total asset divided by two..  For example:&lt;br /&gt;
&lt;br /&gt;
[[File:icon-close-multistate.png|border|120px|center|icon-close-multistate.png]]&lt;br /&gt;
&lt;br /&gt;
The above file ('''icon-close-multistate.png''') provides a 120x50 pixel icon asset.  Each icon is then 60x50 pixels. &lt;br /&gt;
&lt;br /&gt;
====Scalable assets====&lt;br /&gt;
For scalable icon assets, the naming convention is much simpler:&lt;br /&gt;
 icon-NAME-multistate.svg&lt;br /&gt;
Where:&lt;br /&gt;
* '''NAME''' is the icon name, for example &amp;quot;back&amp;quot;&lt;br /&gt;
MeeGo will parse the SVG looking for three top level groups with the following names:&lt;br /&gt;
* normal&lt;br /&gt;
* active&lt;br /&gt;
&lt;br /&gt;
==Non-Icon Assets==&lt;br /&gt;
Non-Icon assets (such as button backgrounds, borders, drop shadows)&lt;br /&gt;
&lt;br /&gt;
===Border Images===&lt;br /&gt;
When a non-icon asset is used as an element background image, it is scaled to fill the entire element.  The scaling is applied uniformly across the entire asset.  For assets that contain a border, this uniform scaling is not what is typically desired.  MeeGo provides a mechanism for the asset designer to specify the region of the graphical element that should be stretched and the region which should not be scaled.  These types of graphic assets are referred to as a &amp;quot;Border Image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:border-slicing.png|frame|center|Border Image]]&lt;br /&gt;
&lt;br /&gt;
In the above image, a 4 pixel border is provided on all sides.  When scaled to arbitrary sizes, scaling is only applied to non-border portions:&lt;br /&gt;
&lt;br /&gt;
[[File:border-streched.png|frame|center|Border Image -- Scaled to 200x32]]&lt;br /&gt;
&lt;br /&gt;
====Border Image Specification====&lt;br /&gt;
Two approaches:&lt;br /&gt;
* Per-asset .sci file provided which contains the border widths.  For example:&lt;br /&gt;
 $ cat background.sci&lt;br /&gt;
 border.left: 5&lt;br /&gt;
 border.right: 5&lt;br /&gt;
 border.top: 5&lt;br /&gt;
 border.bottom: 5&lt;br /&gt;
 source:background.png&lt;br /&gt;
* Per-directory .sci file.  For example:&lt;br /&gt;
 $ cat index.sci&lt;br /&gt;
 # Format:&lt;br /&gt;
 # image-source top right bottom left&lt;br /&gt;
 background.png 5 5 5 5&lt;br /&gt;
 foreground.png 10 2 10 2&lt;br /&gt;
&lt;br /&gt;
To refrence '''background.png''' with the border image properties, QML would refer to the virtual asset '''background.png.sci'''.&lt;br /&gt;
&lt;br /&gt;
If both an index.sci and a separate asset .sci file are provided, the separate file will override the index.sci.&lt;br /&gt;
&lt;br /&gt;
====Border Image: Pixel vs. Vector====&lt;br /&gt;
Image slicing for pixel assets are specified in pixels which means the border element is not scaled relative to the screen pixel density.  The measurable size of a border on a high density display will be smaller than a display with a lower density.&lt;br /&gt;
&lt;br /&gt;
With vector assets, the border size is specified in a virtual pixel representing 330 pixels per inch.  This allows MeeGo to scale the border region proportional with the display density, ensuring a uniform look across multiple display profiles.&lt;br /&gt;
&lt;br /&gt;
=thoughts on asset theme scaling=&lt;br /&gt;
     /* Not done yet -- auto scaling and caching from an asset daemon with target size scaling:&lt;br /&gt;
     *&lt;br /&gt;
     * source: &amp;quot;image://&amp;quot; + unit + &amp;quot;/&amp;quot; + w + &amp;quot;x&amp;quot; + h &amp;quot;/text-bg&amp;quot; &lt;br /&gt;
     * &lt;br /&gt;
&lt;br /&gt;
 // Every image used could be a BorderImage&lt;br /&gt;
 BorderImage {&lt;br /&gt;
     width: 1024&lt;br /&gt;
     height: 768&lt;br /&gt;
     source: &amp;quot;image://super[/dimensions[/units]]/resource[.ext]&amp;quot;  &amp;lt;-- Optional extension to override the default priority ordering&lt;br /&gt;
     source: &amp;quot;image://super/100x75/resource&amp;quot;      &amp;lt;-- width is 100 pixels, height 75 pixels&lt;br /&gt;
     source: &amp;quot;image://super/2.5x2.0/mm/resource&amp;quot;  &amp;lt;-- width is 2.5 millimeters, height is 2.0 millimeters&lt;br /&gt;
     source: theme.avatar.source                  &amp;lt;-- width and height is specified by the theme &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 theme.avatar contains:&lt;br /&gt;
 { &lt;br /&gt;
     width    &amp;lt;--- In pixels&lt;br /&gt;
     height   &amp;lt;--- In pixels&lt;br /&gt;
     source   &amp;lt;--- Uses the uber theme image provider&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 width: 20                &amp;lt;--- hard coded, non density independent&lt;br /&gt;
 width: mm2px(5)          &amp;lt;---hard coded, density independent &lt;br /&gt;
 width: theme.avatar.width &amp;lt;--- theme over-ridable, density independent&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
supporting the scaled size of the border in a border image via the theme; probably requires creating a new &amp;quot;borderimage&amp;quot; replacement that supports a set of target border size properties.  Usage example is to take a 1px border from a pixel asset and have the border actually scaled to 2mm on the display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     *&lt;br /&gt;
     * So, instead, set the source width and height to the scaled dimensions : */&lt;br /&gt;
&lt;br /&gt;
=MeeGo Theming Specifics=&lt;br /&gt;
==Directory structure==&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
==Installation process==&lt;br /&gt;
==Tile cache==&lt;br /&gt;
&lt;br /&gt;
=MeeGo Theming in Applications=&lt;br /&gt;
==MeeGo.Components==&lt;br /&gt;
==Density Independence==&lt;br /&gt;
==Fonts==&lt;br /&gt;
==MeeGo Image Providers==&lt;br /&gt;
'''todo''' describe how and where assets are placed into the distribution, how they are rasterized, where cached assets are stored, how tile caches are built, and how the image loaders tie it all together...&lt;br /&gt;
&lt;br /&gt;
=Tool compatibility=&lt;br /&gt;
Graphic designers use a variety of tools, depending on personal preference and the task at hand.  Not all features exposed by some tools are compatible with other tools, or with the infrastructure used on MeeGo for extracting and managing visual assets.  This section is intended to call out known compatibility issues and work arounds.&lt;br /&gt;
==Photoshop==&lt;br /&gt;
==Gimp==&lt;br /&gt;
==Illustrator==&lt;br /&gt;
==Inkscape==&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Jketreno/theme-assets</id>
		<title>User:Jketreno/theme-assets</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Jketreno/theme-assets"/>
				<updated>2011-04-26T08:23:32Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Border Image: Pixel vs. Vector */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''THIS PAGE IS A WORK IN PROGRESS AND DOES NOT NECESSARILY CORRESPOND TO CURRENT REALITY'''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
The assets used in the visual design of our applications can be broken down into categories:&lt;br /&gt;
&lt;br /&gt;
* Icons assets&lt;br /&gt;
* Non-Icon assets&lt;br /&gt;
&lt;br /&gt;
Icons are typically fixed size and connote a contextual meaning.   Non-icon assets are used as graphical filler; they provide the backgrounds, borders, and color but do not add any specific meaning.&lt;br /&gt;
&lt;br /&gt;
This document covers the methodology and work-flow used by MeeGo to order to provide the highest quality visual experience on a broad spectrum of devices while developing icons and non-icon assets.&lt;br /&gt;
&lt;br /&gt;
It is assumed that the reader is familiar with Density Independence.  For a general overview of that topic, see [[~jketreno/scaling|Density Independence]].&lt;br /&gt;
&lt;br /&gt;
=Graphical Theme Assets Details=&lt;br /&gt;
==Pixel vs. Vector==&lt;br /&gt;
There are two formats in which graphical assets can be provided for MeeGo: '''pixel''' and '''vector'''.&lt;br /&gt;
&lt;br /&gt;
'''Pixel''' (sometimes referred to as raster) assets specify the ARGB color values of each individual pixel.  The quality of what the user sees on their display is heavily dependent on the display density for which the graphical asset was designed.  When designed for a 300DPI screen, an icon intended to be one 1/2&amp;quot; x 1/2&amp;quot; will need to be 150x150 pixels.  When viewed on a 150DPI screen, in order to maintain the same physical size, the asset will need to be scaled down by 50%.  The MeeGo theming image provider will perform this scaling for applications, using a smooth scaling algorithm to reduce artifacts.  Designing for a high DPI and scaling down is the recommended technique for pixel based graphics.&lt;br /&gt;
&lt;br /&gt;
'''Vector''' (sometimes referred to as scalable) assets are specified by paths defined by mathematical equations and are effectively resolution independent which means they can be rasterized at varying densities and sizes without introducing scaling artifacts.&lt;br /&gt;
&lt;br /&gt;
===Virtual Pixel===&lt;br /&gt;
As vector graphics are density independent, there needs to be a way to map the units used within the vector graphic to physical pixels during rasterization.  MeeGo accomplishes this by using a default virtual density of 330 pixels per inch for vector graphics.  This allows the vector graphic to use any real world unit of measure desired while allowing  [[~jketreno/theme-assets#Border_Images|Border Images]] (which may be relative to the rasterized vector graphic) to be specified in a density independent manner.&lt;br /&gt;
&lt;br /&gt;
==Recommended usages for pixel and vector assets==&lt;br /&gt;
Icons, which are typically only scaled to maintain a consistent physical size on the display (for example a button icon which should always be 8mm x 8mm, regardless of the device DPI) should be provided as a pixel asset.  If the asset is designed for a high density display, there will be minimal artifacts when scaled down to lower density displays.  MeeGo will automatically scale pixel assets to new sizes as needed.  See the section on [[~jketreno/theme-assets#dynamic asset scaling|Dynamic Asset Scaling]] for details on how this is accomplished.&lt;br /&gt;
&lt;br /&gt;
Non-icon assets, which may be arbitrarily scaled in X and Y dimension, are best provided as a vector graphic.  This is to reduce banding and aliasing artifacts which would typically occur in gradients, drop shadows, and other effects.  &lt;br /&gt;
&lt;br /&gt;
MeeGo provides a caching mechanism to alleviate the cost of rasterizing a vector asset.&lt;br /&gt;
&lt;br /&gt;
===Downscaling Example===&lt;br /&gt;
The following example illustrates a possible pitfall if fine line details are used when drawing pixel graphics at higher DPI screens &lt;br /&gt;
&lt;br /&gt;
[[File:downscaling-example.png|border|center|148px|Downscaling from 330DPI to 165DPI]]&lt;br /&gt;
Above illustrates scaling of a pixel asset from 330DPI to various DPIs.&lt;br /&gt;
&lt;br /&gt;
[[File:scalable-example.png|frame|center|446px|Downscaling a 9mm x 9mm asset from 330DPI to 110DPI]]&lt;br /&gt;
&lt;br /&gt;
===Upscaling Example===&lt;br /&gt;
The effect of upscaling a pixel vs. vector asset is shown here:&lt;br /&gt;
&lt;br /&gt;
[[File:scalable-vs-pixel.png|border|center|512px|Pixel vs. Scalable]]&lt;br /&gt;
&lt;br /&gt;
In the above example the 32x32 red circle, with a one pixel border, was scaled to be four times larger.  Applying a cubic filter helps to reduce aliasing but muddies the result.  &lt;br /&gt;
&lt;br /&gt;
The vector asset is very clean at the new target size.&lt;br /&gt;
&lt;br /&gt;
There are a few reasons why vector graphics are not used everywhere:&lt;br /&gt;
&lt;br /&gt;
# Time -- Some artistic techniques are difficult to express in terms of paths, fills, and filters.  Requiring all assets to always be provided in a scalable form places undo restrictions on the graphic designer.&lt;br /&gt;
# Compatibility -- some paths, fills, and filters do not produce the same results in the tools building them and the software used in MeeGo to rasterize the asset.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Asset Scaling===&lt;br /&gt;
&lt;br /&gt;
'''todo''' Describe the logic flow for pixel asset priority, vector priority, scaling, interleaving, etc.&lt;br /&gt;
&lt;br /&gt;
==Icon Assets==&lt;br /&gt;
===Editing and naming conventions===&lt;br /&gt;
Icons for MeeGo have two states: &lt;br /&gt;
* normal&lt;br /&gt;
* active&lt;br /&gt;
Providing a separate for each state is error prone and inefficient.  For designers, it requires that multiple files be opened and managed visually which makes quick changes and uniformity more difficult.  For loading efficiency, the more files that have to be opened and read, the slower the system behaves.  &lt;br /&gt;
&lt;br /&gt;
To improve on this, MeeGo icons provide both states in a single graphical asset.  QML elements which use the Icons for button states rely on other means (background colors, alpha overlays, etc.) to provide additional state visualizations (mainly selected and disabled.)&lt;br /&gt;
&lt;br /&gt;
Eventually MeeGo will provide an icon tile management layer to preload all rasterized assets into a large texture set which can be loaded once and then sliced at run-time.&lt;br /&gt;
====Pixel based assets====&lt;br /&gt;
For pixel based icon assets the following naming convention is used:&lt;br /&gt;
 icon-NAME-multistate.EXTENSION&lt;br /&gt;
Where:&lt;br /&gt;
* '''NAME''' is the icon name, for example &amp;quot;close&amp;quot;&lt;br /&gt;
* '''EXTENSION''' is one of the recognized image extensions.  While the system supports both PNG and JPG, it is recommended that only PNG be used.&lt;br /&gt;
&lt;br /&gt;
In terms of a regular expression, the above maps to:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;icon-[[:alnum:]]+multistate.(png|jpg)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The graphical asset is laid out internally such that the pixel width of the individual icon is the width of the total asset divided by two..  For example:&lt;br /&gt;
&lt;br /&gt;
[[File:icon-close-multistate.png|border|120px|center|icon-close-multistate.png]]&lt;br /&gt;
&lt;br /&gt;
The above file ('''icon-close-multistate.png''') provides a 120x50 pixel icon asset.  Each icon is then 60x50 pixels. &lt;br /&gt;
&lt;br /&gt;
====Scalable assets====&lt;br /&gt;
For scalable icon assets, the naming convention is much simpler:&lt;br /&gt;
 icon-NAME-multistate.svg&lt;br /&gt;
Where:&lt;br /&gt;
* '''NAME''' is the icon name, for example &amp;quot;back&amp;quot;&lt;br /&gt;
MeeGo will parse the SVG looking for three top level groups with the following names:&lt;br /&gt;
* normal&lt;br /&gt;
* active&lt;br /&gt;
&lt;br /&gt;
==Non-Icon Assets==&lt;br /&gt;
Non-Icon assets (such as button backgrounds, borders, drop shadows)&lt;br /&gt;
&lt;br /&gt;
===Border Images===&lt;br /&gt;
When a non-icon asset is used as an element background image, it is scaled to fill the entire element.  The scaling is applied uniformly across the entire asset.  For assets that contain a border, this uniform scaling is not what is typically desired.  MeeGo provides a mechanism for the asset designer to specify the region of the graphical element that should be stretched and the region which should not be scaled.  These types of graphic assets are referred to as a &amp;quot;Border Image&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:border-slicing.png|frame|center|Border Image]]&lt;br /&gt;
&lt;br /&gt;
In the above image, a 4 pixel border is provided on all sides.  When scaled to arbitrary sizes, scaling is only applied to non-border portions:&lt;br /&gt;
&lt;br /&gt;
[[File:border-streched.png|frame|center|Border Image -- Scaled to 200x32]]&lt;br /&gt;
&lt;br /&gt;
====Border Image Specification====&lt;br /&gt;
Two approaches:&lt;br /&gt;
* Per-asset .sci file provided which contains the border widths.  For example:&lt;br /&gt;
 $ cat background.sci&lt;br /&gt;
 border.left: 5&lt;br /&gt;
 border.right: 5&lt;br /&gt;
 border.top: 5&lt;br /&gt;
 border.bottom: 5&lt;br /&gt;
 source:background.png&lt;br /&gt;
* Per-directory .sci file.  For example:&lt;br /&gt;
 $ cat index.sci&lt;br /&gt;
 # Format:&lt;br /&gt;
 # image-source top right bottom left&lt;br /&gt;
 background.png 5 5 5 5&lt;br /&gt;
 foreground.png 10 2 10 2&lt;br /&gt;
&lt;br /&gt;
To refrence '''background.png''' with the border image properties, QML would refer to the virtual asset '''background.png.sci'''.&lt;br /&gt;
&lt;br /&gt;
If both an index.sci and a separate asset .sci file are provided, the separate file will override the index.sci.&lt;br /&gt;
&lt;br /&gt;
====Border Image: Pixel vs. Vector====&lt;br /&gt;
Image slicing for pixel assets are specified in pixels which means the border element is not scaled relative to the screen pixel density.  The measurable size of a border on a high density display will be smaller than a display with a lower density.&lt;br /&gt;
&lt;br /&gt;
With vector assets, the border size is specified in a virtual pixel representing 330 pixels per inch.  This allows MeeGo to scale the border region proportional with the display density, ensuring a uniform look across multiple display profiles.&lt;br /&gt;
&lt;br /&gt;
===thoughts on asset theme scaling===&lt;br /&gt;
     /* Not done yet -- auto scaling and caching from an asset daemon with target size scaling:&lt;br /&gt;
     *&lt;br /&gt;
     * source: &amp;quot;image://&amp;quot; + unit + &amp;quot;/&amp;quot; + w + &amp;quot;x&amp;quot; + h &amp;quot;/text-bg&amp;quot; &lt;br /&gt;
     * &lt;br /&gt;
&lt;br /&gt;
 // Every image used could be a BorderImage&lt;br /&gt;
 BorderImage {&lt;br /&gt;
     width: 1024&lt;br /&gt;
     height: 768&lt;br /&gt;
     source: &amp;quot;image://super[/dimensions[/units]]/resource[.ext]&amp;quot;  &amp;lt;-- Optional extension to override the default priority ordering&lt;br /&gt;
     source: &amp;quot;image://super/100x75/resource&amp;quot;      &amp;lt;-- width is 100 pixels, height 75 pixels&lt;br /&gt;
     source: &amp;quot;image://super/2.5x2.0/mm/resource&amp;quot;  &amp;lt;-- width is 2.5 millimeters, height is 2.0 millimeters&lt;br /&gt;
     source: theme.avatar.source                  &amp;lt;-- width and height is specified by the theme &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 theme.avatar contains:&lt;br /&gt;
 { &lt;br /&gt;
     width    &amp;lt;--- In pixels&lt;br /&gt;
     height   &amp;lt;--- In pixels&lt;br /&gt;
     source   &amp;lt;--- Uses the uber theme image provider&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 width: 20                &amp;lt;--- hard coded, non density independent&lt;br /&gt;
 width: mm2px(5)          &amp;lt;---hard coded, density independent &lt;br /&gt;
 width: theme.avatar.width &amp;lt;--- theme over-ridable, density independent&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
supporting the scaled size of the border in a border image via the theme; probably requires creating a new &amp;quot;borderimage&amp;quot; replacement that supports a set of target border size properties.  Usage example is to take a 1px border from a pixel asset and have the border actually scaled to 2mm on the display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     *&lt;br /&gt;
     * So, instead, set the source width and height to the scaled dimensions : */&lt;br /&gt;
&lt;br /&gt;
=MeeGo Theming Specifics=&lt;br /&gt;
==Directory structure==&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
==Installation process==&lt;br /&gt;
==Tile cache==&lt;br /&gt;
&lt;br /&gt;
=MeeGo Theming in Applications=&lt;br /&gt;
==MeeGo.Components==&lt;br /&gt;
==Density Independence==&lt;br /&gt;
==Fonts==&lt;br /&gt;
==MeeGo Image Providers==&lt;br /&gt;
'''todo''' describe how and where assets are placed into the distribution, how they are rasterized, where cached assets are stored, how tile caches are built, and how the image loaders tie it all together...&lt;br /&gt;
&lt;br /&gt;
=Tool compatibility=&lt;br /&gt;
Graphic designers use a variety of tools, depending on personal preference and the task at hand.  Not all features exposed by some tools are compatible with other tools, or with the infrastructure used on MeeGo for extracting and managing visual assets.  This section is intended to call out known compatibility issues and work arounds.&lt;br /&gt;
==Photoshop==&lt;br /&gt;
==Gimp==&lt;br /&gt;
==Illustrator==&lt;br /&gt;
==Inkscape==&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Jketreno/scaling</id>
		<title>User:Jketreno/scaling</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Jketreno/scaling"/>
				<updated>2011-04-26T08:21:15Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* thoughts on asset theme scaling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''THIS PAGE IS A WORK IN PROGRESS AND DOES NOT NECESSARILY CORRESPOND TO CURRENT REALITY'''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
This document provides an overview of how applications can be written to support the broadest range of physical screen characteristics with the least amount of work by the application authors and graphic designers.&lt;br /&gt;
&lt;br /&gt;
The intent is to provide a means of allowing applications to be written in a density independent manner, where the physical size of UI elements is consistent across a wide spectrum of devices.  As automatic software scaling and conversion can not know the internal meaning of a graphics element (which pixels are important), pixel based assets must be designed for the lowest targeted pixels-per-inch (PPI).  In this manner, system software can scale up to the actual device pixel density.&lt;br /&gt;
&lt;br /&gt;
By following the guidelines in this document, application creators can create a single application package which will work across all devices, varying both in pixel density and physical screen sizes.&lt;br /&gt;
&lt;br /&gt;
'''Lower priority:'''  In addition to the varying densities targeted by MeeGo, the system should support various &amp;quot;distance-from-eye&amp;quot; scenarios as well as varying &amp;quot;input device resolution&amp;quot;.  An example of the former is a status bar on a tablet that is held 6-8&amp;quot; farther from the eyes than a handset--this may require that the status bar and fonts are slightly larger to maintain legibility.  This may be achieved by providing a readability scaling factor used elements not intended to be manipulated via touch.   An example of the later (varying input device resolution) is a scaling factor applied to the specified physical size of an element to accommodate higher precision devices (mice and stylus) as well as lower precision devices (gyro/accelerometer remotes, thumb-stick remotes, etc.)&lt;br /&gt;
&lt;br /&gt;
==Target Resolutions and PPI==&lt;br /&gt;
The following image illustrates a small application running across the full range of screen sizes and densities currently supported by MeeGo.  These images have been scaled to provide consistent relative sizing in the image.  This was done by converting 1:1 pixel images to a virtual pixel density of 160ppi.  Click the image to go to the higher resolution version.&lt;br /&gt;
[[Image:meego-units-example.png|center|thumb|400px|Density Independent Rendered Sample]]&lt;br /&gt;
&lt;br /&gt;
A small 1:1 pixel crop from the highest density display (269ppi) and the lowest density (113ppi) can be seen here.  When placed on the actual devices, the toolbar, buttons, and fonts would be physically the same size.&lt;br /&gt;
[[Image:meego-units-example-1to1.png|center|thumb|400px|1:1 Pixel Comparison]]&lt;br /&gt;
&lt;br /&gt;
As can be seen in the table below, touch enabled MeeGo user experiences target two major physical screen size classifications; tablet (&amp;gt;7&amp;quot;) and handset (~4&amp;quot;).  In addition to the varying physical dimensions of the screens, the devices have various PPIs [dots-per-inch -- also referred to as PPI or pixels-per-inch].  Based on the expected frequency of deployment, we are focusing our &amp;quot;pixel perfect&amp;quot; UIs for only a select set of DPIs and screen resolutions.  &lt;br /&gt;
&lt;br /&gt;
==Current Device Resolutions==&lt;br /&gt;
The following provides examples of potential screen profiles which should be supported by MeeGo:&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Handset&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;800x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;233&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4.3&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;960x540&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;256&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3.67&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;864x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;269&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16.2:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tablet&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11.6&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1360x768&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;135&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;151&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;7&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;216&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density Industry list of display densities]&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
==Getting the code==&lt;br /&gt;
 git clone '''todo -- where is the code repository???'''&lt;br /&gt;
 cd meego-units&lt;br /&gt;
 qmake&lt;br /&gt;
 make &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
==accessing the units==&lt;br /&gt;
To start, you need to import the MeeGo Units plug-in:&lt;br /&gt;
 import Qt 4.7&lt;br /&gt;
 import MeeGo.units 1.0&lt;br /&gt;
This loads the libmeegounitsplugin adds a new QML type called 'MeeGoUnits'  Since plug-ins do not have direct access to the global object namespace, the plug-in can't automatically populate a top level namespace with a 'Units' element--so you must instantiate it within your top level widget:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
At this point, you can now reference the unit conversion properties via '''units'''.  The properties exposed are '''mm''', '''inch''', '''vp''', and '''density'''.  All three are implemented as properties with notification signals, so if the underlying device PPI changes, all UI elements can be re-laid out.  This is useful when moving (at run-time) an application from a small handset screen to a larger display (for example via an attached HDMI)&lt;br /&gt;
&lt;br /&gt;
Extending the above example to set the rectangle size to be 10cm x 5cm:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
     width: units.mm2px(100.0)&lt;br /&gt;
     height: units.mm2px(50.0)&lt;br /&gt;
 }&lt;br /&gt;
Using the conversion properties is pretty straight forward and works as you would expect.  The following instantiates a 1cm x 1cm rectangle, offset from the top left of its parent by 1cm:&lt;br /&gt;
    Rectangle {&lt;br /&gt;
        x: units.mm2px(10.0)&lt;br /&gt;
        y: units.mm2px(10.0)&lt;br /&gt;
        width: units.mm2px(10.0)&lt;br /&gt;
        height: units.mm2px(10.0)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
==a note on rounding==&lt;br /&gt;
Since the value of the properties returned by MeeGoUnits are non-integer (for example, units.mm might be '3.66667'), the result of most operations with the units will result in non-integer numbers as well.  Due to the cast of real to int, you may encounter rounding problems which typically manifest themselves as QML Items not always lining up.  This can be remedied by using the mm2px() conversion method exposed by the units object vs. using units.mm directly.&lt;br /&gt;
&lt;br /&gt;
The following shows a simplified example which can lead to rounding problems:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: 20.0 * units.mm&lt;br /&gt;
    height: 10.0 * units.mm&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
Better code:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: units.mm2px(20.0)&lt;br /&gt;
    height: units.mm2px(10.0)&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==text==&lt;br /&gt;
 Text {&lt;br /&gt;
    font.pixelSize: units.mm2px(2.5) // create text that is 2.5mm tall&lt;br /&gt;
    text: &amp;quot;2.5mm font&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==images==&lt;br /&gt;
 Image {&lt;br /&gt;
     source: &amp;quot;text-bg.jpg&amp;quot;&lt;br /&gt;
     width: units.mm2px(9.5)&lt;br /&gt;
     height: units.mm2px(6.0)&lt;br /&gt;
     sourceSize.width: units.mm2px(9.5)&lt;br /&gt;
     sourceSize.height: units.mm2px(6.0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===thoughts on asset theme scaling===&lt;br /&gt;
     /* Not done yet -- auto scaling and caching from an asset daemon with target size scaling:&lt;br /&gt;
     *&lt;br /&gt;
     * source: &amp;quot;image://&amp;quot; + unit + &amp;quot;/&amp;quot; + w + &amp;quot;x&amp;quot; + h &amp;quot;/text-bg&amp;quot; &lt;br /&gt;
     * &lt;br /&gt;
&lt;br /&gt;
 // Every image used could be a BorderImage&lt;br /&gt;
 BorderImage {&lt;br /&gt;
     width: 1024&lt;br /&gt;
     height: 768&lt;br /&gt;
     source: &amp;quot;image://super[/dimensions[/units]]/resource[.ext]&amp;quot;  &amp;lt;-- Optional extension to override the default priority ordering&lt;br /&gt;
     source: &amp;quot;image://super/100x75/resource&amp;quot;      &amp;lt;-- width is 100 pixels, height 75 pixels&lt;br /&gt;
     source: &amp;quot;image://super/2.5x2.0/mm/resource&amp;quot;  &amp;lt;-- width is 2.5 millimeters, height is 2.0 millimeters&lt;br /&gt;
     source: theme.avatar.source                  &amp;lt;-- width and height is specified by the theme &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 theme.avatar contains:&lt;br /&gt;
 { &lt;br /&gt;
     width    &amp;lt;--- In pixels&lt;br /&gt;
     height   &amp;lt;--- In pixels&lt;br /&gt;
     source   &amp;lt;--- Uses the uber theme image provider&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 width: 20                &amp;lt;--- hard coded, non density independent&lt;br /&gt;
 width: mm2px(5)          &amp;lt;---hard coded, density independent &lt;br /&gt;
 width: theme.avatar.width &amp;lt;--- theme over-ridable, density independent&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
supporting the scaled size of the border in a border image via the theme; probably requires creating a new &amp;quot;borderimage&amp;quot; replacement that supports a set of target border size properties.  Usage example is to take a 1px border from a pixel asset and have the border actually scaled to 2mm on the display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     *&lt;br /&gt;
     * So, instead, set the source width and height to the scaled dimensions : */&lt;br /&gt;
&lt;br /&gt;
==vector vs. raster==&lt;br /&gt;
==naming conventions==&lt;br /&gt;
==resource sharing==&lt;br /&gt;
==scaling==&lt;br /&gt;
&amp;lt;!--....&lt;br /&gt;
The software automatically adjusts and scales the UI elements and assets to account for varying physical sizes and PPIs.  A typical problem with automatic system rescaling of images and UI widgets is that the resulting scaled interface may not look ideal.  In the event there is a popular product category that an application creator wants to target, the system provides a mechanism for the creator to provide PPI specific assets which will override the system scaling and be used for those target PPIs.  The approach used is similar to mip-mapping of textures in 3D applications, where the application creator can provide a myriad of target resolutions and PPIs and the software will interpolate between the nearest PPI and size versions to create new sizes and versions as needed.&lt;br /&gt;
...--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/User:Jketreno/scaling</id>
		<title>User:Jketreno/scaling</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/User:Jketreno/scaling"/>
				<updated>2011-04-26T08:16:03Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* thoughts on asset theme scaling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''THIS PAGE IS A WORK IN PROGRESS AND DOES NOT NECESSARILY CORRESPOND TO CURRENT REALITY'''&lt;br /&gt;
&lt;br /&gt;
=Introduction=&lt;br /&gt;
This document provides an overview of how applications can be written to support the broadest range of physical screen characteristics with the least amount of work by the application authors and graphic designers.&lt;br /&gt;
&lt;br /&gt;
The intent is to provide a means of allowing applications to be written in a density independent manner, where the physical size of UI elements is consistent across a wide spectrum of devices.  As automatic software scaling and conversion can not know the internal meaning of a graphics element (which pixels are important), pixel based assets must be designed for the lowest targeted pixels-per-inch (PPI).  In this manner, system software can scale up to the actual device pixel density.&lt;br /&gt;
&lt;br /&gt;
By following the guidelines in this document, application creators can create a single application package which will work across all devices, varying both in pixel density and physical screen sizes.&lt;br /&gt;
&lt;br /&gt;
'''Lower priority:'''  In addition to the varying densities targeted by MeeGo, the system should support various &amp;quot;distance-from-eye&amp;quot; scenarios as well as varying &amp;quot;input device resolution&amp;quot;.  An example of the former is a status bar on a tablet that is held 6-8&amp;quot; farther from the eyes than a handset--this may require that the status bar and fonts are slightly larger to maintain legibility.  This may be achieved by providing a readability scaling factor used elements not intended to be manipulated via touch.   An example of the later (varying input device resolution) is a scaling factor applied to the specified physical size of an element to accommodate higher precision devices (mice and stylus) as well as lower precision devices (gyro/accelerometer remotes, thumb-stick remotes, etc.)&lt;br /&gt;
&lt;br /&gt;
==Target Resolutions and PPI==&lt;br /&gt;
The following image illustrates a small application running across the full range of screen sizes and densities currently supported by MeeGo.  These images have been scaled to provide consistent relative sizing in the image.  This was done by converting 1:1 pixel images to a virtual pixel density of 160ppi.  Click the image to go to the higher resolution version.&lt;br /&gt;
[[Image:meego-units-example.png|center|thumb|400px|Density Independent Rendered Sample]]&lt;br /&gt;
&lt;br /&gt;
A small 1:1 pixel crop from the highest density display (269ppi) and the lowest density (113ppi) can be seen here.  When placed on the actual devices, the toolbar, buttons, and fonts would be physically the same size.&lt;br /&gt;
[[Image:meego-units-example-1to1.png|center|thumb|400px|1:1 Pixel Comparison]]&lt;br /&gt;
&lt;br /&gt;
As can be seen in the table below, touch enabled MeeGo user experiences target two major physical screen size classifications; tablet (&amp;gt;7&amp;quot;) and handset (~4&amp;quot;).  In addition to the varying physical dimensions of the screens, the devices have various PPIs [dots-per-inch -- also referred to as PPI or pixels-per-inch].  Based on the expected frequency of deployment, we are focusing our &amp;quot;pixel perfect&amp;quot; UIs for only a select set of DPIs and screen resolutions.  &lt;br /&gt;
&lt;br /&gt;
==Current Device Resolutions==&lt;br /&gt;
The following provides examples of potential screen profiles which should be supported by MeeGo:&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Handset&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;800x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;233&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4.3&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;960x540&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;256&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3.67&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;864x480&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;269&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16.2:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Tablet&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;font-style: italic;&amp;quot;&amp;gt;&amp;lt;td&amp;gt;Diagonal&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Resolution&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PPI&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Aspect Ratio&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1024x600&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;119&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;15.4:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11.6&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1360x768&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;135&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:9&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;151&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;7&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1280x800&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;216&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;16:10&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
[http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density Industry list of display densities]&lt;br /&gt;
&lt;br /&gt;
=Implementation Details=&lt;br /&gt;
==Getting the code==&lt;br /&gt;
 git clone '''todo -- where is the code repository???'''&lt;br /&gt;
 cd meego-units&lt;br /&gt;
 qmake&lt;br /&gt;
 make &amp;amp;&amp;amp; sudo make install&lt;br /&gt;
==accessing the units==&lt;br /&gt;
To start, you need to import the MeeGo Units plug-in:&lt;br /&gt;
 import Qt 4.7&lt;br /&gt;
 import MeeGo.units 1.0&lt;br /&gt;
This loads the libmeegounitsplugin adds a new QML type called 'MeeGoUnits'  Since plug-ins do not have direct access to the global object namespace, the plug-in can't automatically populate a top level namespace with a 'Units' element--so you must instantiate it within your top level widget:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
At this point, you can now reference the unit conversion properties via '''units'''.  The properties exposed are '''mm''', '''inch''', '''vp''', and '''density'''.  All three are implemented as properties with notification signals, so if the underlying device PPI changes, all UI elements can be re-laid out.  This is useful when moving (at run-time) an application from a small handset screen to a larger display (for example via an attached HDMI)&lt;br /&gt;
&lt;br /&gt;
Extending the above example to set the rectangle size to be 10cm x 5cm:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
     MeeGoUnits {&lt;br /&gt;
          id: units&lt;br /&gt;
     }&lt;br /&gt;
     width: units.mm2px(100.0)&lt;br /&gt;
     height: units.mm2px(50.0)&lt;br /&gt;
 }&lt;br /&gt;
Using the conversion properties is pretty straight forward and works as you would expect.  The following instantiates a 1cm x 1cm rectangle, offset from the top left of its parent by 1cm:&lt;br /&gt;
    Rectangle {&lt;br /&gt;
        x: units.mm2px(10.0)&lt;br /&gt;
        y: units.mm2px(10.0)&lt;br /&gt;
        width: units.mm2px(10.0)&lt;br /&gt;
        height: units.mm2px(10.0)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
==a note on rounding==&lt;br /&gt;
Since the value of the properties returned by MeeGoUnits are non-integer (for example, units.mm might be '3.66667'), the result of most operations with the units will result in non-integer numbers as well.  Due to the cast of real to int, you may encounter rounding problems which typically manifest themselves as QML Items not always lining up.  This can be remedied by using the mm2px() conversion method exposed by the units object vs. using units.mm directly.&lt;br /&gt;
&lt;br /&gt;
The following shows a simplified example which can lead to rounding problems:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: 20.0 * units.mm&lt;br /&gt;
    height: 10.0 * units.mm&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
Better code:&lt;br /&gt;
 Rectangle {&lt;br /&gt;
    width: units.mm2px(20.0)&lt;br /&gt;
    height: units.mm2px(10.0)&lt;br /&gt;
    ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==text==&lt;br /&gt;
 Text {&lt;br /&gt;
    font.pixelSize: units.mm2px(2.5) // create text that is 2.5mm tall&lt;br /&gt;
    text: &amp;quot;2.5mm font&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==images==&lt;br /&gt;
 Image {&lt;br /&gt;
     source: &amp;quot;text-bg.jpg&amp;quot;&lt;br /&gt;
     width: units.mm2px(9.5)&lt;br /&gt;
     height: units.mm2px(6.0)&lt;br /&gt;
     sourceSize.width: units.mm2px(9.5)&lt;br /&gt;
     sourceSize.height: units.mm2px(6.0)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===thoughts on asset theme scaling===&lt;br /&gt;
     /* Not done yet -- auto scaling and caching from an asset daemon with target size scaling:&lt;br /&gt;
     *&lt;br /&gt;
     * source: &amp;quot;image://&amp;quot; + unit + &amp;quot;/&amp;quot; + w + &amp;quot;x&amp;quot; + h &amp;quot;/text-bg&amp;quot; &lt;br /&gt;
     * &lt;br /&gt;
&lt;br /&gt;
 BorderImage {&lt;br /&gt;
     width: 1024&lt;br /&gt;
     height: 768&lt;br /&gt;
     source: &amp;quot;image://super{/dimensions{/units}}/resource{.ext}&amp;quot;&lt;br /&gt;
     source: &amp;quot;image://super/&amp;quot; + width + &amp;quot;x&amp;quot; + height + &amp;quot;/px/resource&amp;quot;&lt;br /&gt;
     source: theme.avatar.source&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 theme.avatar contains:&lt;br /&gt;
 { &lt;br /&gt;
     width    &amp;lt;--- In pixels&lt;br /&gt;
     height   &amp;lt;--- In pixels&lt;br /&gt;
     source   &amp;lt;--- uses the uber theme image provider&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 width: 20                &amp;lt;--- hard coded, non density independent&lt;br /&gt;
 width: mm2px(5)          &amp;lt;---hard coded, density independent &lt;br /&gt;
 width: theme.avatarWidth &amp;lt;--- theme over-ridable, density independent&lt;br /&gt;
&lt;br /&gt;
--------------&lt;br /&gt;
&lt;br /&gt;
supporting the scaled size of the border in a border image via the theme; probably requires creating a new &amp;quot;borderimage&amp;quot; replacement that supports a set of target border size properties.  Usage example is to take a 1px border from a pixel asset and have the border actually scaled to 2mm on the display&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     *&lt;br /&gt;
     * So, instead, set the source width and height to the scaled dimensions : */&lt;br /&gt;
&lt;br /&gt;
==vector vs. raster==&lt;br /&gt;
==naming conventions==&lt;br /&gt;
==resource sharing==&lt;br /&gt;
==scaling==&lt;br /&gt;
&amp;lt;!--....&lt;br /&gt;
The software automatically adjusts and scales the UI elements and assets to account for varying physical sizes and PPIs.  A typical problem with automatic system rescaling of images and UI widgets is that the resulting scaled interface may not look ideal.  In the event there is a popular product category that an application creator wants to target, the system provides a mechanism for the creator to provide PPI specific assets which will override the system scaling and be used for those target PPIs.  The approach used is similar to mip-mapping of textures in 3D applications, where the application creator can provide a myriad of target resolutions and PPIs and the software will interpolate between the nearest PPI and size versions to create new sizes and versions as needed.&lt;br /&gt;
...--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-20T04:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=API Documentation=&lt;br /&gt;
Eventually, API docs will be generated automatically from the tip of the git repository at http://apidocs.meego.com.  For now, there is a snapshot of the docs [[Components_API_Snapshot|here]].&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Examples of Using Components=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties.  See [[MeeGo_UX_Components_WidgetGallery|screen shots]].&lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
=Using Components in a New Application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-20T04:06:26Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Building your first application */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Examples of Using Components=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties.  See [[MeeGo_UX_Components_WidgetGallery|screen shots]].&lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
=Using Components in a New Application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Components_Migration</id>
		<title>Components Migration</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Components_Migration"/>
				<updated>2011-04-19T22:13:49Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: Created page with &amp;quot;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components== ''PAGE UNDER CONSTRUCTION''  Currently some component code versions exists in both meegolabs-ux-compone...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Migration of Components from MeeGo.Labs.Components to MeeGo.Components==&lt;br /&gt;
''PAGE UNDER CONSTRUCTION''&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components.&lt;br /&gt;
&lt;br /&gt;
Component migration will occur in three phases:&lt;br /&gt;
&lt;br /&gt;
===Phase I (done April 8th)===&lt;br /&gt;
* deprecate Media pickers (image/video/music)&lt;br /&gt;
* deprecate Date and Time pickers&lt;br /&gt;
* Contacts picker will remain in meegolabs-ux-components for the time being&lt;br /&gt;
&lt;br /&gt;
===Phase II (schedule to end April 22)===&lt;br /&gt;
* all other duplicated components (see table below)&lt;br /&gt;
* Window and AppPage/ApplicationPage will not be migrated in this phase&lt;br /&gt;
&lt;br /&gt;
===Phase III (scheduled to end April 29)===&lt;br /&gt;
* Window and AppPage components&lt;br /&gt;
&lt;br /&gt;
 import MeeGo.Labs.Components 0.1 as Labs&lt;br /&gt;
 import MeeGo.Components 0.1&lt;br /&gt;
 &lt;br /&gt;
 // meego-ux-components window&lt;br /&gt;
 Window {&lt;br /&gt;
   ...&lt;br /&gt;
   // meego-ux-components button&lt;br /&gt;
   Button {&lt;br /&gt;
   }&lt;br /&gt;
   // meegolabs-ux-components iconbutton&lt;br /&gt;
   Labs.IconButton {&lt;br /&gt;
   }&lt;br /&gt;
 ...&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==Window, Book and Page==&lt;br /&gt;
&lt;br /&gt;
A general change in the meego-ux-components is the concept of how to use Window&lt;br /&gt;
and AppPage in order to create a navigation path to your application. Please&lt;br /&gt;
find the examples and the tutorial in the devel package to help you understand&lt;br /&gt;
the concept easily.&lt;br /&gt;
&lt;br /&gt;
==Phase II Components Migration:==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|MeeGo Labs         ||MeeGo-Ux-Components   ||Changes&lt;br /&gt;
|-&lt;br /&gt;
|ActionMenu         ||ActionMenu            ||API changed&lt;br /&gt;
|-&lt;br /&gt;
|Button             ||Button                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|CheckBox           ||CheckBox              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ContextMenu        ||ModalContextMenu      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|DropDown           ||DropDown              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|EditPane           ||TextField             ||replace by TextField&lt;br /&gt;
|-&lt;br /&gt;
|ExpandingBox       ||ExpandingBox          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Fog                ||ModalFog              ||whole concept changed&lt;br /&gt;
|-&lt;br /&gt;
|IconButton         ||IconButton            ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|MessageBox         ||ModalMesseageBox      ||derived from ModalFog, API change&lt;br /&gt;
|-&lt;br /&gt;
|ModalDialog        ||ModalDialog           ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ModalSurface       ||ModalFog              ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|PickerDialog       ||ModalDialog           ||-&lt;br /&gt;
|-&lt;br /&gt;
|PopupList          ||PopupList             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioButton        ||RadioButton           ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.js      ||RadioGroup.js         ||Design&lt;br /&gt;
|-&lt;br /&gt;
|RadioGroup.qml     ||RadioGroup.qml        ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Slider             ||Slider                ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|Spinner            ||Spinner               ||No API changes&lt;br /&gt;
|-&lt;br /&gt;
|StatusBar          ||StatusBar             ||No changes&lt;br /&gt;
|-&lt;br /&gt;
|TextEntry          ||TextEntry             ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|ToggleButton       ||ToggleButton          ||API and Design&lt;br /&gt;
|-&lt;br /&gt;
|TopItem            ||TopItem               ||API&lt;br /&gt;
|-&lt;br /&gt;
|VerticalSlider     ||VerticalSlider        ||API and Design&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T21:53:06Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Examples of Using Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Examples of Using Components=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties.  See [[MeeGo_UX_Components_WidgetGallery|screen shots]].&lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T21:50:45Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Screen Shots of the Meego UX Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Examples of Using Components=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties &lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components_WidgetGallery</id>
		<title>MeeGo UX Components WidgetGallery</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components_WidgetGallery"/>
				<updated>2011-04-19T21:49:50Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: Created page with &amp;quot;=Screen Shots of the Meego UX Components Widget Gallery=  Run the gallery with the following command.  Only use the --opengl option when running on target hardware.   $ meego-qml...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Screen Shots of the Meego UX Components Widget Gallery=&lt;br /&gt;
&lt;br /&gt;
Run the gallery with the following command.  Only use the --opengl option when running on target hardware.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --opengl --app meego-ux-components-widgetgallery&lt;br /&gt;
&lt;br /&gt;
Some screen shots of the gallery application: &lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-1.png|800px]]&lt;br /&gt;
::(Initial view - showing the list of widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-Buttons.png|800px]]&lt;br /&gt;
::(Showing Button Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-ModalDialogs.png|800px]]&lt;br /&gt;
::(Showing Modal Dialog Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-date-picker.png|800px]]&lt;br /&gt;
::(Showing Date Picker Widget in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-messagebox.png|800px]]&lt;br /&gt;
::(Showing ModalMessageBox in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-progressbar.png|800px]]&lt;br /&gt;
::(Showing ProgressBar widget in action after clicking the Start button)&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T21:43:27Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Example Programs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Examples of Using Components=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties &lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Screen Shots of the Meego UX Components=&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-1.png|800px]]&lt;br /&gt;
::(Initial view - showing the list of widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-Buttons.png|800px]]&lt;br /&gt;
::(Showing Button Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-ModalDialogs.png|800px]]&lt;br /&gt;
::(Showing Modal Dialog Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-date-picker.png|800px]]&lt;br /&gt;
::(Showing Date Picker Widget in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-messagebox.png|800px]]&lt;br /&gt;
::(Showing ModalMessageBox in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-progressbar.png|800px]]&lt;br /&gt;
::(Showing ProgressBar widget in action after clicking the Start button)&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T21:42:40Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Seeing the MeeGo UX Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Example Programs=&lt;br /&gt;
&lt;br /&gt;
To see the components in action and to verify correct installation, we can use the three example programs provided:&lt;br /&gt;
&lt;br /&gt;
* meego-ux-components-widgetgallery - A gallery of components which demonstrate each components and interactively lets you change component properties &lt;br /&gt;
* meego-ux-components-app-photos - An example application that uses MeeGo UX components  &lt;br /&gt;
* meego-ux-components-tutorial - An on-line tutorial on how to use MeeGo UX Components&lt;br /&gt;
&lt;br /&gt;
To run on a development system, use meego-qml-launcher.  Your application should have a file at ''/usr/share/&amp;lt;application-name&amp;gt;/main.qml''.  This tool exports theme information to QML applications (font sizes, colors, dimensions, etc) and also ensures that your application is treated as a system-wide singleton.  That is, if the app is already running, meego-qml-launcher will send a &amp;quot;raise&amp;quot; dbus signal instead of launching a second instance.&lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
When running on target hardware, you can add the --opengl option to use hardware graphics acceleration.  &lt;br /&gt;
&lt;br /&gt;
 $ meego-qml-launcher --opengl --fullscreen --app meego-ux-components-widgetallery&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Screen Shots of the Meego UX Components=&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-1.png|800px]]&lt;br /&gt;
::(Initial view - showing the list of widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-Buttons.png|800px]]&lt;br /&gt;
::(Showing Button Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-ModalDialogs.png|800px]]&lt;br /&gt;
::(Showing Modal Dialog Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-date-picker.png|800px]]&lt;br /&gt;
::(Showing Date Picker Widget in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-messagebox.png|800px]]&lt;br /&gt;
::(Showing ModalMessageBox in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-progressbar.png|800px]]&lt;br /&gt;
::(Showing ProgressBar widget in action after clicking the Start button)&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T21:09:12Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Install the MeeGo UX Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Installing MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Using Zypper==&lt;br /&gt;
To use MeeGo UX components for your project, you will need to install the development version of the package.  Using zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From a Source Package==&lt;br /&gt;
First ensure that you have an enabled Trunk source zypper repo.  Bring in a source archive and all the needed build-time dependencies with:&lt;br /&gt;
 zypper source-install meego-ux-components&lt;br /&gt;
&lt;br /&gt;
==From a Git Repo==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
&lt;br /&gt;
The easiest way to prepare your development environment with all the build-time dependencies is to install the source package as described above.&lt;br /&gt;
If you don't want to do that, read the README file for instructions on installing dependent packages manually.  Finally, make and install:&lt;br /&gt;
&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
&lt;br /&gt;
=Seeing the MeeGo UX Components=&lt;br /&gt;
&lt;br /&gt;
Next lets test the install and verify that the widgets are installed.  The default location for the sample applications using the components are:&lt;br /&gt;
 /usr/share/meego-ux-app-photos&lt;br /&gt;
 /usr/share/meego-ux-tutorial&lt;br /&gt;
 /usr/share/meego-ux-widgetgallery&lt;br /&gt;
&lt;br /&gt;
We will run the widget gallery using the qmlviewer:&lt;br /&gt;
 $ qmlviewer /usr/share/meego-ux-widgetgallery/main.qml&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Screen Shots of the Meego UX Components=&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-1.png|800px]]&lt;br /&gt;
::(Initial view - showing the list of widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-Buttons.png|800px]]&lt;br /&gt;
::(Showing Button Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-ModalDialogs.png|800px]]&lt;br /&gt;
::(Showing Modal Dialog Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-date-picker.png|800px]]&lt;br /&gt;
::(Showing Date Picker Widget in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-messagebox.png|800px]]&lt;br /&gt;
::(Showing ModalMessageBox in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-progressbar.png|800px]]&lt;br /&gt;
::(Showing ProgressBar widget in action after clicking the Start button)&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/MeeGo_UX_Components</id>
		<title>MeeGo UX Components</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/MeeGo_UX_Components"/>
				<updated>2011-04-19T20:57:07Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The '''meego-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meego-ux-components&amp;amp;project=Trunk OBS]] provides visual components for third-party developers to use to quickly create applications adhering to the MeeGo UX look-and-feel.  These components are supported and are an official part of the MeeGo API for developers.&lt;br /&gt;
&lt;br /&gt;
Many components in this package first appeared in the '''meegolabs-ux-components''' package [[http://meego.gitorious.org/meego-ux/meegolabs-ux-components git]/[http://build.meego.com/package/show?package=meegolabs-ux-components&amp;amp;project=Trunk OBS]].  Code in this package includes experimental code and early versions with unstable APIs.  There is no guarantee of support for these components nor will they necessarily maintain consistent software interfaces.&lt;br /&gt;
&lt;br /&gt;
Currently some component code versions exists in both meegolabs-ux-components and meego-ux-components.  In order to avoid confusion for third party developers and to decrease the burden of maintaining two branches and keeping them in sync, we are deprecating code in meegolabs-ux-components where it is already available in meego-ux-components (See [[Components_Migration|Components Migration]]).&lt;br /&gt;
&lt;br /&gt;
=Install the MeeGo UX Components=&lt;br /&gt;
You can install the MeeGo UX components either from the zypper (recommended) or directly form the latest version of the source code.  This code assumes you are working either on a MeeGo system [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Windows|(Windows]] | [[SDK/Docs/1.2/MeeGo_SDK_1.2_Preview_for_Linux|Linux)]], within the [[SDK/Qemu|MeeGo SDK QEMU environment]], or within a [[Developing_in_a_Meego_Environment#Step_1:_Chrooting_into_the_development_image|MeeGo chroot configuration]].&lt;br /&gt;
&lt;br /&gt;
==Zypper==&lt;br /&gt;
To install the MeeGo UX Components via zypper:&lt;br /&gt;
 zypper install meego-ux-components-devel&lt;br /&gt;
&lt;br /&gt;
==From Source==&lt;br /&gt;
We'll first clone the source from the upstream repository location on Gitorious:&lt;br /&gt;
 git clone git://meego.gitorious.org/meego-ux/meego-ux-components&lt;br /&gt;
 cd meego-ux-components&lt;br /&gt;
 qmake&lt;br /&gt;
 make&lt;br /&gt;
 sudo make install&lt;br /&gt;
NOTE:  If you haven't been doing active development from sources, you may need several development dependency packages.  The easiest way to get those dependencies installed is to use zypper to install the sources for meego-u-components first.  You can then pull from GIT for the tip of development.  This command tells zypper to install the source for meego-ux-components, which will install any build dependencies as well:&lt;br /&gt;
 zypper si meego-ux-components&lt;br /&gt;
&lt;br /&gt;
=Seeing the MeeGo UX Components=&lt;br /&gt;
&lt;br /&gt;
Next lets test the install and verify that the widgets are installed.  The default location for the sample applications using the components are:&lt;br /&gt;
 /usr/share/meego-ux-app-photos&lt;br /&gt;
 /usr/share/meego-ux-tutorial&lt;br /&gt;
 /usr/share/meego-ux-widgetgallery&lt;br /&gt;
&lt;br /&gt;
We will run the widget gallery using the qmlviewer:&lt;br /&gt;
 $ qmlviewer /usr/share/meego-ux-widgetgallery/main.qml&lt;br /&gt;
&lt;br /&gt;
=Building your first application=&lt;br /&gt;
Now that the MeeGo UX Components are installed on your system, you can begin developing a new application using the components.  &lt;br /&gt;
&lt;br /&gt;
# Launch Qt Creator.&lt;br /&gt;
# Select 'Create Project'&lt;br /&gt;
# Under Projects select 'Qt Quick Project'&lt;br /&gt;
# 'QML Application' will be selected for the template type.&lt;br /&gt;
# Click 'Choose...'&lt;br /&gt;
# Give the project a name, for example &amp;quot;thatwaseasy&amp;quot;.  Click 'Next'&lt;br /&gt;
# Click 'Finish'  Qt Creator will now create the project and provide an initial QML file&lt;br /&gt;
&lt;br /&gt;
Let's run it to see what it does.  Click the green arrow in the lower left corner of Qt Creator.  This will run the application.  After a few moments a new window will appear with the text 'Hello world'  Now let's add a MeeGo UX button and when it is pressed, we will change the text to say &amp;quot;That was easy!&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=Adding MeeGo UX Components=&lt;br /&gt;
Installed with the MeeGo UX Components are a set of QML files provided as a tutorial.  You can find the contents of the first file in:&lt;br /&gt;
 /usr/share/meego-ux-tutorial/step1/main.qml.&lt;br /&gt;
&lt;br /&gt;
Open that file in Qt Creator, copy its contents, and replace the contents of the QML file that Qt Creator generated for you.&lt;br /&gt;
&lt;br /&gt;
You can now run that first step by clicking on the green arrow (or pressing CTRL-R on the keyboard)  Save your changes when prompted.&lt;br /&gt;
&lt;br /&gt;
You can explore the other tutorial steps and see what they each do.  Experiment with the various components you see in the widgets gallery.&lt;br /&gt;
&lt;br /&gt;
=Screen Shots of the Meego UX Components=&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-1.png|800px]]&lt;br /&gt;
::(Initial view - showing the list of widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-Buttons.png|800px]]&lt;br /&gt;
::(Showing Button Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-ModalDialogs.png|800px]]&lt;br /&gt;
::(Showing Modal Dialog Widgets)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-date-picker.png|800px]]&lt;br /&gt;
::(Showing Date Picker Widget in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-messagebox.png|800px]]&lt;br /&gt;
::(Showing ModalMessageBox in action)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Meego-ux-widgetgallery-progressbar.png|800px]]&lt;br /&gt;
::(Showing ProgressBar widget in action after clicking the Start button)&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-04-13T06:32:03Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* MeeGo Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure and Governance =&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* Bi-weekly [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
** [[Error Management]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [http://appdeveloper.intel.com/en-us/meego-develop Intel Tablet Guide]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
** [[Components_Migration|Migration to Components]] - Guides and roadmap for migrating from MeeGo.Labs.Components to MeeGo.Components&lt;br /&gt;
* [[MeeGoLabs_UX_Components|MeeGo Labs Components]] - Unsupported, experimental QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	<entry>
		<id>http://wiki.meego.com/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.meego.com/Main_Page"/>
				<updated>2011-04-06T14:40:33Z</updated>
		
		<summary type="html">&lt;p&gt;Btdrucke: /* Developer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Structure and Governance =&lt;br /&gt;
&lt;br /&gt;
MeeGo is an open source project led by the MeeGo Technical Steering Group (TSG). The governance model is based on meritocracy and the best practices and values of the Open Source culture. The MeeGo project lives under the auspices of the Linux Foundation. &lt;br /&gt;
&lt;br /&gt;
* [http://meego.com/about/governance MeeGo Project Structure and Governance Overview]&lt;br /&gt;
* Bi-weekly [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Working Group Process]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Project Functions ==&lt;br /&gt;
* [[Community Office]]&lt;br /&gt;
* [[Localization team|Localization]]&lt;br /&gt;
* [http://meego.com/about/governance/program-office Program Office]&lt;br /&gt;
* [[Core_OS_Program | Core OS Program]]&lt;br /&gt;
* [[Handset_Program | Handset UX Program]]&lt;br /&gt;
* [[In-vehicle | In Vehicle Infotainment - IVI]]&lt;br /&gt;
* [[Product Management]]&lt;br /&gt;
* [[Quality]]&lt;br /&gt;
** [[Error Management]]&lt;br /&gt;
* [[Release_Engineering|Release Engineering]]&lt;br /&gt;
* [http://meego.com/about/governance/ui-design User Interface Design]&lt;br /&gt;
* [[SDK]]&lt;br /&gt;
* [[Architecture]]&lt;br /&gt;
&lt;br /&gt;
= User =&lt;br /&gt;
&lt;br /&gt;
* [[MeeGo Netbook FAQ]]&lt;br /&gt;
* [http://meego.com/devices/netbook/installing-meego-your-netbook Install MeeGo on your netbook]&lt;br /&gt;
* [[Devices|Supported devices]]&lt;br /&gt;
* [[Install MeeGo from Hard Disk]]&lt;br /&gt;
&lt;br /&gt;
= Developer =&lt;br /&gt;
== Developer Guide ==&lt;br /&gt;
&lt;br /&gt;
* [[SDK/Docs/1.1|Developer Guide for MeeGo 1.1]]&lt;br /&gt;
* [[SDK/Docs/1.0|Developer Guide for MeeGo 1.0]]&lt;br /&gt;
* [[Build_Infrastructure | Build Infrastructure]]&lt;br /&gt;
* [[MeeGo Porting Guide]]&lt;br /&gt;
* [[QML tutorials]] - Some tutorials to help get started with QML, the Qt Modelling Language.&lt;br /&gt;
* [http://mxr.meego.com/ MeeGo cross reference] - Index of MeeGo source code&lt;br /&gt;
&lt;br /&gt;
Other documents:&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Document&lt;br /&gt;
! Variety (Version)&lt;br /&gt;
! Architectures&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[ARM|ARM based devices (N900, BeagleBoard, PandaBoard, Snowball)]]&lt;br /&gt;
|All&lt;br /&gt;
|ARM&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo_1.0_Netbook_VirtualBox|VirtualBox]]&lt;br /&gt;
|Netbook (1.0)&lt;br /&gt;
|Intel&lt;br /&gt;
|-&lt;br /&gt;
|Instructions for [[MeeGo SDK on Windows with VirtualBox]]&lt;br /&gt;
|All&lt;br /&gt;
|All&lt;br /&gt;
|-&lt;br /&gt;
|Tips for [[Developing With The Aava]]&lt;br /&gt;
|Handset/Aava&lt;br /&gt;
|Intel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Release Process ==&lt;br /&gt;
The MeeGo Release Process includes:&lt;br /&gt;
* [[Release_Engineering/Process|Release process and work flow]]&lt;br /&gt;
* [[Release_Engineering/Release_Timeline|MeeGo releases every 6 months]]&lt;br /&gt;
* [[Release_Engineering/Process|Nightly builds for developers and weekly releases will be available]]&lt;br /&gt;
&lt;br /&gt;
== MeeGo Components ==&lt;br /&gt;
* [[MeeGo_UX_Components|MeeGo Components]] - Supported common QML components&lt;br /&gt;
* [[MeeGoLabs_UX_Components|MeeGo Labs Components]] - Unsupported, experimental QML components&lt;br /&gt;
&lt;br /&gt;
= Community =&lt;br /&gt;
&lt;br /&gt;
== Contributing to MeeGo ==&lt;br /&gt;
* Read our [[Community guidelines]]: [[Wiki contribution guidelines|Wiki]], [[Mailing list guidelines|mailing list]], [[Forum/Guidelines|forum]], and [[Community guidelines|more]].&lt;br /&gt;
* [[Community communication|Participate in our forums, mailing lists, and more]].&lt;br /&gt;
* [http://meego.com/about/contribution-guidelines Contribute to MeeGo].&lt;br /&gt;
* [[Build_Infrastructure/Community_Builder|Building applications]] for MeeGo&lt;br /&gt;
&lt;br /&gt;
See also [[Who's who]].&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
&lt;br /&gt;
[[MeeGo-Meeting IRC Schedule]]&lt;br /&gt;
&lt;br /&gt;
The following groups have regular meetings, see their respective pages for details.&lt;br /&gt;
&lt;br /&gt;
* [[Technical Steering Group meetings]]&lt;br /&gt;
* [[Community Office/Meetings|Community Office meetings]]&lt;br /&gt;
* [[Localization team]]&lt;br /&gt;
&lt;br /&gt;
Regional Activities.&lt;br /&gt;
* [[Local MeeGo Networks]]&lt;br /&gt;
&lt;br /&gt;
== Bi-Annual MeeGo Conference ==&lt;br /&gt;
&lt;br /&gt;
'''Upcoming Conferences'''&lt;br /&gt;
* [[MeeGo Conference Spring 2011|Spring 2011: May 23 - 25 at the Hyatt Regency, San Francisco]]&lt;br /&gt;
* [[MeeGo Conference Fall 2011|Fall 2011: November Date TBD in Europe]]&lt;br /&gt;
&lt;br /&gt;
'''Past Conference Wrap-Up Information'''&lt;br /&gt;
* [[MeeGo_Conference_2010|Fall 2010: November 15 - 17 in Dublin]]&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* [[MeeGo FAQ]]&lt;br /&gt;
* [[Glossary|Glossary and Acronyms]]&lt;br /&gt;
* [[Community guidelines]]&lt;br /&gt;
* [[Special:PopularPages|Popular Wiki Pages]]&lt;br /&gt;
* [[Special:MostLinkedPages|Most Linked-to Pages]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Top level]]&lt;/div&gt;</summary>
		<author><name>Btdrucke</name></author>	</entry>

	</feed>