maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   MeeGo / Harmattan (https://talk.maemo.org/forumdisplay.php?f=45)
-   -   Harmattan UI framework development is opened (https://talk.maemo.org/showthread.php?t=44562)

tomasj 2010-02-15 14:44

Harmattan UI framework development is opened
 
Hi,

We're releasing the Harmattan UI framework as open source today: http://duiframework.wordpress.com/20...-ui-framework/

At the same time, we're transitioning to working entirely in public at http://qt.gitorious.org/maemo-6-ui-framework

It's still a work in progress, but already you can check out this very early version from the extras-devel repository by installing the Harmattan Widgets Gallery demo on your Nokia N900.

You should also be able to build and run the examples and demos on your normal Linux, Mac OS X, or Windows desktop. We will be making binary packages available as well, if you just want to see how it looks :)

Regards,
Tomas

asidana 2010-02-15 15:08

Re: Maemo 6 UI framework development is opened
 
dependency for widgets Gallery is missing in extras-devel

drm 2010-02-15 15:17

Re: Maemo 6 UI framework development is opened
 
Will the maemo 6 be released at all? Or shall we say meego1…

davidmaxwaterman 2010-02-15 15:18

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by asidana (Post 527478)
dependency for widgets Gallery is missing in extras-devel

Do you have something else that relies on a specific version of Qt? I've tried this on a freshly-flashed device and it works fine, pulling in all dependencies without a problem.

I've seen one instance where it wouldn't install due to a bad dependency, and removing libqt* fixed it, but that also removed a whole bunch of other packages, so you might consider that a little heavy handed - perhaps removing just libqt4-maemo5* is sufficient (and allow the application manager to pull them in again when it installs Widgets Gallery).

I'd be interested to know what you find. Please let us know, and if there's something to correct, we'll do so.

pelago 2010-02-15 15:21

Re: Maemo 6 UI framework development is opened
 
Videos of the Maemo 6 Widgets Gallery demo would be great!

jak 2010-02-15 15:22

Re: Maemo 6 UI framework development is opened
 
Intel already developed a MID UI for Moblin. So will this one then replace Intel's MID UI in MeeGo?

dubik 2010-02-15 15:42

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by pelago (Post 527494)
Videos of the Maemo 6 Widgets Gallery demo would be great!

Apparently I can't just send "Soon!" because it's too short.

thp 2010-02-15 15:45

Re: Maemo 6 UI framework development is opened
 
Pretty nice.

Ctrl+B, Ctrl+N and Ctrl+M turn on some overlays (name of widget is N and layout/spacing is M, don't know what B is supposed to do) for debugging.

aldevil 2010-02-15 15:47

Re: Maemo 6 UI framework development is opened
 
how about fixing the problems in Maemo 5 first?

tomasj 2010-02-15 15:54

Re: Maemo 6 UI framework development is opened
 
If you look at the MeeGo architecture picture, you will see that there are several reference user interfaces for different classes of devices.

In the same way that it doesn't really make sense to directly port desktop applications to mobile, we are still finding out what works best on different device types. The common factor you can rely on across all MeeGo devices at the moment is Qt. That doesn't necessarily mean a Qt based UI is the optimal fit for a MID type of device. Let's see :)

tomasj 2010-02-15 15:58

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by thp (Post 527554)
Pretty nice.

Ctrl+B, Ctrl+N and Ctrl+M turn on some overlays (name of widget is N and layout/spacing is M, don't know what B is supposed to do) for debugging.

Hah, you found our debug modes :)

Ctrl+B is bounding box visualization (the area a widget paints and reacts in)
Ctrl+N displays object names
Ctrl+M displays widget margins
Ctrl+S toggles object sizes

The really cool one however is Ctrl+R, it rotates the whole UI by 90 degrees at a time so you can test your app in different orientations without needing a special simulator or real hardware.

tomasj 2010-02-15 16:05

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by aldevil (Post 527561)
how about fixing the problems in Maemo 5 first?

Maemo 5 has a whole separate team focused right now on bringing you lots of goodies in the already announced upcoming PR1.2 release for Maemo 5. Nokia is a pretty big company and Maemo's not so small either anymore, we're capable of multitasking and just throwing more people at one task doesn't necessarily make it go any faster (as those who have developed software surely can testify to) ;)

dubik 2010-02-15 16:35

Re: Maemo 6 UI framework development is opened
 
about those modes...
oh, well, tomas was faster, but there is another one
ctrl-f shows fps counter

daperl 2010-02-15 16:47

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by tomasj (Post 527571)
If you look at the MeeGo architecture picture, you will see that there are several reference user interfaces for different classes of devices.

In the same way that it doesn't really make sense to directly port desktop applications to mobile, we are still finding out what works best on different device types. The common factor you can rely on across all MeeGo devices at the moment is Qt. That doesn't necessarily mean a Qt based UI is the optimal fit for a MID type of device. Let's see :)

I think that page could use a quick edit. At the bottom, the picture should read

Adaptation

not

Application

abubakar 2010-02-15 19:06

Re: Maemo 6 UI framework development is opened
 
its pretty cool. There are 2 things though. After installing it, free space in / is only 14mb, before installation it was about 36mb.
Also after installation I cannot change my theme on n900, i goto Settings and click Themes but nothing shows up, happening with everyone? I also rebooted but same behavior. And one more thing which is pretty strange, in the gadget gallery, where ever text can be written, the letter "o" does not appear, i try writing "hello world" and what appears is "hell w rld".

ARJWright 2010-02-15 19:41

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by tomasj (Post 527571)
In the same way that it doesn't really make sense to directly port desktop applications to mobile, we are still finding out what works best on different device types. The common factor you can rely on across all MeeGo devices at the moment is Qt. That doesn't necessarily mean a Qt based UI is the optimal fit for a MID type of device. Let's see :)

Rule of web design that would be nice to keep in mind here:

Content is separate from presentation is separate from functionality.

Qt is a toolkit, not a UI. It creates the ability to put content in the appropriate presentation container so that the desired functionality cam be demonstrated.

1 - 2.2in screens
2.2 - 3.3in
3.3 - 4.1in
5in - 7in
7in - 10(ish) in

These are all different sizes to which user interface has to be optimized. Inside of these screen sizes are expectations of use that drive function. Qt can write to all of these. The OS doesn't matter as long as there is tight governance around the abilities of devices in these form factors, and how the UI elements get presented.

Maemo 5 already has a leg up with Qt support; Symbian, Windows, Linux, etc will all benefit from the groundwork laid here. And except for the smallest two screen measurements I've listed, Maemo/Moblin/Meego is nicely positioned from a UX standpoint.

davidmaxwaterman 2010-02-16 02:16

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by abubakar (Post 527940)
its pretty cool. There are 2 things though. After installing it, free space in / is only 14mb, before installation it was about 36mb.
Also after installation I cannot change my theme on n900, i goto Settings and click Themes but nothing shows up, happening with everyone? I also rebooted but same behavior. And one more thing which is pretty strange, in the gadget gallery, where ever text can be written, the letter "o" does not appear, i try writing "hello world" and what appears is "hell w rld".

Thanks for reporting this issue. I've managed to reproduce the theming issue on my device and will try to have it fixed.

I feel at this point that it's worth reminding people trying Widgets Gallery that, as with any preview software, it's wise to do a backup before trying it on your own device. While we have, of course, tested it on many devices, we can't test every possible situation and combination of packages. Our testing tends to focus on freshly flashed devices.

Thanks,

Max.

maxximuscool 2010-02-16 02:54

Re: Maemo 6 UI framework development is opened
 
this is bull crap, maemo5 will be forgotten in a 6 months from now. There are so much bugs to fix and the OS that nokia so hype about and proud of will only just a bridge. it's not like N900 is incapable of running Maemo6, it is very capable and should be bring forth the new OS into it. So far so many bulls going on with the controversy of N900 is not good enough to be the next subling of MAEMO6. Everyone who is buying he device now are holding back to wait, so as the developers? if the OS will soon be history and not many device sold enough to meet their margin of consideration to write software for this device no one is going to invest their money into a device that will not be a sucess product!

Why not just giving us the great maemo6 when it comes out? since maemo5 is the only bugjar to make maemo6 better. why treatig us with such terrible way of testing? there is no doubt that N900 is a good device but maemo5 is not even close to being refined. I can't even use my bluetooth headset with it!

seriously Nokia is big but size won't make the OS problems and hardware problems on the N900 goes away. i personally love my N900 but there are so much potential hidden inside it. Which could be discover by maemo6. But hey NO MAEMO6 for N900.

qgil 2010-02-16 04:49

Re: Maemo 6 UI framework development is opened
 
To the N900 users in this thread:

- The developers in this thread have nothing to do with Nokia business decisions e.g. N900 support and updates. If you notice the first thing they have done is to prepare a Widget Gallery binary for Maemo 5 making it available in Extras-devel. So please let them work on their stuff and help them with testing, feedback and hugs.

- Please get used to open development. Most of the interesting stuff that runs with software has a newer version being developed somewhere. The difference with open development is that you can have a preview and even an involvement long before a real product comes to the shelves.

- It is not easy to drag good developers to noisy forums like Talk. The easiest for themis to setup a project mailing list that anyway will get the people understanding the technology and discussing about it. Posts shouting at them about Nokia, the N900, etc won't help getting more of their time here.

Thank you for your understanding.

silvermountain 2010-02-16 05:00

Re: Maemo 6 UI framework development is opened
 
Quote:

Originally Posted by tomasj (Post 527595)
Maemo 5 has a whole separate team focused right now on bringing you lots of goodies in the already announced upcoming PR1.2 release for Maemo 5. Nokia is a pretty big company and Maemo's not so small either anymore, we're capable of multitasking

That would be a milestone if that is true as one thing that Nokia have consistently failed at has been to support anything but the latest-anything.

dubik 2010-02-16 14:51

Re: Harmattan UI framework development is opened
 
And here is the video....
<removed youtube link>

sorry guys, no video.

RenegadeFanboy 2010-02-16 17:04

Re: Harmattan UI framework development is opened
 
Video is private?

qgil 2010-02-16 18:37

Re: Harmattan UI framework development is opened
 
nibbles, you are getting confused. That article is quite old and this thread is about the open development of the Harmattan UI framework. Posts moved to the (old) thread where they belong to: http://talk.maemo.org/showthread.php?t=29055

ezjd 2010-02-19 04:35

Re: Harmattan UI framework development is opened
 
Since I didn't find place to discuss UI framework detail, I put some comments here (so it isn't as open as I expected;) ):

-- Why is the compositor based on QGLWidget instead of QWidget?
This implies that this UI framework requires HW OpenGL support all the time, similar to clutter.

This makes it less flexible when porting to a system w/o OpenGL and at least makes it more difficult to port as OpenGL driver is always closed source and not available from the beginning. (Actually, this is worst thing I think with Moblin).

-- Qt provides graphic system support, which make it possible to render using OpenGL or not. That is the flexibility I like with Qt. As such a fundamental component, using QWidget will provide more scalability. I like the idea in http://labs.trolltech.com/blogs/2009...e-an-overview/, which basically suggest to use SW raster engine by default and use QGLWidget when OpenGL acceleration is needed.

xynopsis 2010-02-19 10:49

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by ezjd (Post 535958)
Since I didn't find place to discuss UI framework detail, I put some comments here (so it isn't as open as I expected;) ):

-- Why is the compositor based on QGLWidget instead of QWidget?
This implies that this UI framework requires HW OpenGL support all the time, similar to clutter.

This makes it less flexible when porting to a system w/o OpenGL and at least makes it more difficult to port as OpenGL driver is always closed source and not available from the beginning. (Actually, this is worst thing I think with Moblin).

-- Qt provides graphic system support, which make it possible to render using OpenGL or not. That is the flexibility I like with Qt. As such a fundamental component, using QWidget will provide more scalability. I like the idea in http://labs.trolltech.com/blogs/2009...e-an-overview/, which basically suggest to use SW raster engine by default and use QGLWidget when OpenGL acceleration is needed.

The Harmattan UI platform _is_ an OpenGL/GLES2-based platform and that backend is intentional. We are going to publish some validation test suites for hardware that can support our platform so this will not really be a big issue (e.g., GL extensions, shader support, etc).

Actually what Gunnar was talking in his blog is how off-screen painting is being handled. This is now made default in Qt i.e.,QPainter renders graphics to an off-screen buffer before displaying it on the framebuffer. The raster engine is of course the fastest off-screen painting approach because not all platform support GL rendering to pixmaps. Now how to render that off-screen buffer to the frame buffer is another issue, which of course the most efficient manner is by using GL.

Our compositor does not need to use raster because it completely bypasses QPainter since it is only interested in windows and already has the reference to off-screen representation of windows. What it needs is just a surface to draw to. That is why you see QGLWidget.

ammadtira 2010-02-19 20:25

Re: Harmattan UI framework development is opened
 
Dont install the demo widget.. Your themes would not work

ezjd 2010-02-19 22:09

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by xynopsis (Post 536302)
The Harmattan UI platform _is_ an OpenGL/GLES2-based platform and that backend is intentional. ...

OK, I am more clear about Harmattan targeting platform, which invalidates my comments basically. Looks like I should send this kind of requirement to MeeGo project, esp. assuming Harmarran UI framework will be the base of MeeGo's.

Technology wise, I'd say it will be more flexible that compositor can "fallback" to use QWidget or even QWindowSurface(?) when GL support isn't available or at least provides compile time options. One example is KWin, which can run well with or w/o GL support.

tomasj 2010-02-21 10:18

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by ezjd (Post 537434)
Technology wise, I'd say it will be more flexible that compositor can "fallback" to use QWidget or even QWindowSurface(?) when GL support isn't available or at least provides compile time options. One example is KWin, which can run well with or w/o GL support.

Our compositor is really small (both code and feature wise) and intently focuses on filling the niche of a high-performance OpenGL compositor for handhelds or slightly larger devices. It's not really something you would want to use even on your laptop at this time. It does some quite innovative things like seamlessly un-redirecting the rendering for windows that fill the device screen, which is perfect for a handheld but doesn't make sense in other type of setups.

That said, the Harmattan UI framework can, and has been, run with other window managers and compositors. The apps don't really make any assumptions in this regard. Still, while the apps can technically be run in software by switching the graphics system, we see it as critical to the user experience that we can depend on OpenGL acceleration being available to us. So we are setting the minimum hardware baseline at the N900 level for the entire framework, and not making any compromises in order to also scale downwards.

ezjd 2010-02-21 17:50

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by tomasj (Post 539464)
Our compositor is really small (both code and feature wise) and intently focuses on filling the niche of a high-performance OpenGL compositor for handhelds or slightly larger devices. It's not really something you would want to use even on your laptop at this time. It does some quite innovative things like seamlessly un-redirecting the rendering for windows that fill the device screen, which is perfect for a handheld but doesn't make sense in other type of setups.

I understand the reason doing so. What is this "seamlessly un-redirecting rendering"?

Quote:

Originally Posted by tomasj (Post 539464)
That said, the Harmattan UI framework can, and has been, run with other window managers and compositors. The apps don't really make any assumptions in this regard. Still, while the apps can technically be run in software by switching the graphics system, we see it as critical to the user experience that we can depend on OpenGL acceleration being available to us. So we are setting the minimum hardware baseline at the N900 level for the entire framework, and not making any compromises in order to also scale downwards.

As I assume (somewhat confirmed) that Harmattan UI framework will be the base of MeeGo, I think it was targeting much more devices. So I have these ideas because I view it as a more generic compositor and technically it is easy to achieve with Qt. Probably MeeGo will do another window manager/compositor, though it might not as HW OpenGL is also assumed, at least to what I heard.
I really like the graphic system/backend thing of Qt, which makes it possible to use OpenGL or not and it is transparent to application and can be changed at runtime. And this is impossible in clutter based system.

Venemo 2010-03-06 00:32

Re: Harmattan UI framework development is opened
 
I installed duitheme, because I liked its nice plain white look.
After that, I couldn't switch to the actual theme, because tapping on the "Themes" item didn't work anymore.

I didn't install any of the other packages.

davidmaxwaterman 2010-03-07 08:00

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by Venemo (Post 557449)
I installed duitheme, because I liked its nice plain white look.
After that, I couldn't switch to the actual theme, because tapping on the "Themes" item didn't work anymore.

I didn't install any of the other packages.

yes, this is a known problem in fremantle and a fix has been made...not sure about the release plans.
we are considering a workaround in duitheme, however, i seriously doubt it will ever be possible to switch fremantle's ui to one in duitheme - though I will check to make sure.

Max.

Venemo 2010-03-09 23:23

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by davidmaxwaterman (Post 558494)
however, i seriously doubt it will ever be possible to switch fremantle's ui to one in duitheme - though I will check to make sure.

Thank you for checking that out!
However, if you doubt that it will ever be possible, why did you release it for Fremantle in the first place, then? :confused:

conny 2010-03-09 23:26

Re: Harmattan UI framework development is opened
 
Because now developers can already start to toy around with it, give feedback, adapt their own code, etc...

davidmaxwaterman 2010-03-10 06:43

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by Venemo (Post 561908)
Thank you for checking that out!
However, if you doubt that it will ever be possible, why did you release it for Fremantle in the first place, then? :confused:

It's needed for the dui WidgetsGallery demo to look correct - it was never intended to work with the fremantle UI.

davidmaxwaterman 2010-03-10 08:28

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by Venemo (Post 561908)
Thank you for checking that out!

I have checked this out and confirmed that at least it isn't supposed to work. I guess we can never say never, but it won't work 'as is' or without extra work.

It was mentioned that there might be some theme that looks at least similar...

conny 2010-03-12 20:56

Re: Harmattan UI framework development is opened
 
First, thank you very much for providing new versions of the Widget Gallery so often. It is really great to see the progress!

Now, I'm pretty sure that this is not the final Harmattan look and fell - there surely will be plenty of changes. Still, I'm wondering if we can assume the basic layouts etc. to be the same in Harmattan? E.g. the toolbar currently holds up to 4 actions. The application menu looks like it can hold a maximum of 8 actions. And so on...

Are those things, we can assume to be valid for the Harmattan release?

Another thing: What is the differentiation between a "check box" and a "switch"? Aren't they both doing exactly the same thing? When should I use a check box and when a switch? Or will one of them get dropped eventually?

Again, thanks for developing this in the open. Really exciting stuff :)

conny 2010-03-12 22:38

Re: Harmattan UI framework development is opened
 
I came about some more questions. I just had a short look into the code, so please excuse me, if I misunderstood something.

It seem that there are no sub classes for check buttons, switch buttons and check boxes. Instead this is all DuiButton.

Creating a normal button is as easy as:
Code:

DuiButton* pushButton = new DuiButton("Push Button");
But creating a check box I have to do:
Code:

DuiButton* checkbox = new DuiButton();
checkbox->setViewType(DuiButton::checkboxType);
checkbox->setCheckable(true);

Isn't setViewType(DuiButton::checkboxType) and setCheckable(true) somehow redundant?

Then to set a label for a check box, it looks like I have to do something like this:

Code:

checkboxLabel = new DuiLabel();
checkboxLabel->setText("Text");
QGraphicsLinearLayout *l = new QGraphicsLinearLayout(Qt::Horizontal);
l->addItem(checkbox);
l->addItem(checkboxLabel);
l->setAlignment(checkbox, Qt::AlignCenter);
l->setAlignment(checkboxLabel, Qt::AlignCenter);
containerPolicy->addItem(l);

I would rather expect to do simply
Code:

checkbox = new DuiButton("Text");
checkbox->setCheckable(true);

or even only
Code:

checkbox = new DuiCheckBox("Text");
Is the API to do this just not ready yet, or will it stay like this? Or did I simply miss something obvious? The code which I'm quoting is taken from the widget gallery.

Anyways, I would be happy to get some enlightenment :)

dubik 2010-03-16 07:05

Re: Harmattan UI framework development is opened
 
Sometimes you need togglable button, sometimes checkbox and sometimes switch. They all have the same semantics but different look. Thats why there is setViewType(...). So setCheckable can't decide which view you want. I think by default you get togglable button.

Regarding text..I will check with people who made it. But most likely there is no way to fix it. You may want to have text on the left, right, top or bottom, with spacer in between or not and so on. It's too complex to solve for general case.

conny 2010-03-16 07:27

Re: Harmattan UI framework development is opened
 
Quote:

Originally Posted by dubik (Post 568792)
Sometimes you need togglable button, sometimes checkbox and sometimes switch. They all have the same semantics but different look. Thats why there is setViewType(...). So setCheckable can't decide which view you want. I think by default you get togglable button.

Ok, then setViewType() should be enough?! What will setCheckable(true) do on a push button?

Quote:

Originally Posted by dubik (Post 568792)
Regarding text..I will check with people who made it. But most likely there is no way to fix it. You may want to have text on the left, right, top or bottom, with spacer in between or not and so on. It's too complex to solve for general case.

In this regard I really like the HildonCheckButton. I think it's a great idea to put the label inside the button. This way it is clear, that the label can be used to toggle the button and while tapping the button the change of state can be seen.

Of course, if you want to be super flexible on where/how the label should be placed a simple constructor with a string is not enough. On the other hand I think that in 95% of the cases people want to have a checkbox and a label on its right side. And the label should be clickable to change the check state of the button.

So how about doing a CheckButton that would be a composite of CheckBox and Label. CheckBox can then be used in cases where a CheckButton is not enough.

tissot 2010-04-14 18:05

Re: Harmattan UI framework development is opened
 
Anybody got video about widget gallery or know of any video?
I installed widget gallery back then, but i got the endless reboot problem and searching currently a video to show.


All times are GMT. The time now is 15:35.

vBulletin® Version 3.8.8