The document discusses adapting GNOME applications to the Maemo Fremantle platform. It covers replacing elements like GtkPaned with the root view and sub view model, replacing spin buttons with HildonPickerButtons, simplifying menus using the HildonAppMenu, and migrating preference dialogs to use a HildonPannableArea. The goal is to follow the Hildon interface guidelines and port applications to be usable on the Maemo touch interface.
4. What porting means
● Before Fremantle:
● Make an application RUN in Maemo
● After Fremantle:
● ADAPT an application to Maemo
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
5. Why bothering?
● Your application gets better
● Your users get happier
● Your fingers too!
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
6. GNOME Applications
● Coding will be easier – it is GTK+!
● Lots of interesting applications waiting to be ported!
● If you're a GNOME user, you may have your common
applications available to you.
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
8. Root view / sub view philosophy
● Applications are stacks of windows
● The root window is the base
● E.g.: List of emails
● Actions that break the usage flow, will be sub views:
● E.g.: Reading an email
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
9. Root View Sub View
This means: no GTKPaned!
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
20. Replaced the GtkSpinButtons by
HildonEntries and not by
HildonPickerButtons because the
changes are shown immediately in
the image.
Assign the numeric GtkInputMode
21. Text is the focus here, so, instead of a
GtkNotebook, the style properties are in a
GtkDialog launched from the text properties
HildonAppMenu
24. HildonAppMenu
● Really different from a GtkMenu!!
● Do not stuff it: Keep a low number of items
● Use filters to display HOW contents are shown, not
WHICH contents are shown
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
25. How to keep a low number of menu items?
DRY: Don't Repeat Yourself
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
26. Choose the most used/important menus and sub-
menus from the menu bar.
Pages can be chosen using gestures, so, no need for
Next/Previous menus.
27. The status bar and toolbar are not used in EOG
for Maemo, so, no menus are needed.
The Zoom In / Zoom Out functionalities are
accomplished by using the Increase / Decrease
hard-keys.
28. Following the Hildon Interface
Guidelines
● HIG says: don't show menu items that are insensitive
● Here's a helpful tip:
● Connect a callback to the “show” signal of each
HildonAppMenu item
● The callback shows/hides the item according to its
“sensitive” property
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
29. EOG with no images loaded
EOG with an image loaded
31. Preferences Dialogs
● Dialogs with a GtkNotebook to group different kinds of
preferences
● Tabs' labels define groups' names
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
32. How to migrate it to Fremantle?
● Use a HildonPannableArea
● Add a GtkVBox with ALL the preferences groups and
use a GtkLabel above each one, identifying it
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
33.
34. Where to go from here?
● Maemo 5 Developer Guide:
http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide
● Maemo 5 API Reference:
http://maemo.org/api_refs/5.0/5.0-final/hildon/
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>