Mx Toolkit 1.0.3

Bee over waterlily by aussiegall

I just released a Mx 1.0.3 (“Honey Dew”), with improved documentation and support for compiling GSEAL_ENABLED in GTK+.

Also with this release, I’m pleased to announce Mx is now hosted on clutter-project.org!

MeeGo Zones

One thing everyone might not have noticed in the new MeeGo 1.0 for netbooks is the nice new zones panel, which I had the pleasure of working on. One of the neat things is that you can drag and drop windows between zones, and there are some nice animations as this all happens. I wrote about how I implemented the animations back in December last year, although I couldn’t mention what it was for at the time!

Unfortunately I didn’t get time to do a video yet, but here’s a screenshot showing the drag and drop in motion:

Meego™ and Mx 1.0

Meego™ 1.0 for Netbooks is now available, with a revamped user experience based on Clutter/Mx. The Mx toolkit now sports a number of widgets and classes, as I mentioned in my previous post. The API reference documentation is now also available online, or can be built from the source code using the –enable-gtk-doc configuration option. Source code is available from git or source tarballs.

Mx Widget Gallery

Mx Toolkit 1.0

The first stable release of the Mx widget toolkit was quietly released a few days ago. Mx is a traditional GUI toolkit, built upon Clutter technology. This enables smooth animations and special effects through hardware accelerated graphics (OpenGL).

The 1.0 release brings API and ABI stability to Mx and a good deal of bug fixes. The source code is available from gitorious.org/mx-toolkit, along with some of the other optional supporting packages such as clutter-gesture and clutter-imcontext. The 1.0 release is tagged and there is a branch that will carry bug fixes for this release. I’ve also made tarballs available in my personal directory on freedesktop.org. To build with minimal requirements, you may want to disable the optional dependencies from the configure script (–without-clutter-imcontext –without-clutter-gesture –without-startup-notification –without-dbus).

Here’s a list of some of the features that made it into 1.0:

  • Widgets: Window, Button, ComboBox, Entry, Frame, Icon, Label, Menu, ProgressBar, PathBar, ScrollBar, Slider, Toggle, Toolbar and Tooltip
  • Layout Containers: Grid, Table, Box, ScrollView, Viewport
  • Advanced Actors: Offscreen, DeformWaves, DeformBowTie, DeformPageTurn
  • Data views: ItemView, ListView
  • Utility objects: Application, Action, Clipboard, IconTheme, Style, TextureCache, ButtonGroup,
  • Other features: Drag and drop, keyboard navigation, CSS styling

As with any 1.0 release, there are bound to be bugs that haven’t been caught yet, so if you find any, please file them in the bugzilla located on bugs.meego.org (the Mx product can be found under “Meego Projects”).

Many thanks to all those involved in the making of Mx 1.0!

Searching the Control Center

Nick and I had a discussion a few days ago about what search should look like in the new Settings shell. I had a go at implementing what we discussed and now it is possible to search not only panel names, but also their descriptions:
searching-settings

Showing the match in-line (much like search engines do) gives the user an understanding of why the item has matched, but also some context. It probably needs some tweaks to detect things like word boundaries, and the description of each panel needs to make sure it includes relevant keywords.

I also made sure that keyboard usage was easy. The filtering is done as you type and pressing enter will activate the first (top left most) item. Hitting the escape key will clear the entry and return you to the All Settings view. I also need to add arrow key support so that it is possible to navigate directly to the results view from the entry.

If you’d like to try it out for yourself, the code is in the extensible-shell branch of gnome-control-center.

GNOME/Moblin Control Center

I’ve been looking recently at what can be done to improve the GNOME Control Center shell for both GNOME 3.0 and for Moblin. In Moblin, we wanted a single window approach, so that finding a setting and opening a preference pane could be done within a single environment. After some discussion on IRC and on the control center mailing list, it seems people within the Gnome community were also interested in this idea. I’ve been having a go at prototyping this behaviour to see how it would turn out. We’ve now gone through a couple of iterations of refining the design into something that is more promising. Here are some screenshots of how it looks right now:

Displaying all settings categories:
Settings-All

Searching for a setting:
Settings-Search

Opening up the keyboard preferences:
Settings-Keyboard

The work is all available in the single-window-shell branch of gnome-control-center. At the moment, the single window behaviour is implemented using the XEmbed protocol via GtkPlug and GtkSocket. This allowed us to quickly prototype and experiment with the behaviour while making minimal changes to the existing capplets, although any capplets without the added functionality will open in a new window as before. Jon McCann of RedHat is also looking at using GIO Extension Point based approach, but this requires a more significant re-write of the capplets.

At the upcoming GNOME Usability hackfest I hope to gather more feedback on the design and possibly start working on refining the UI for many of the individual preference panes as well.