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>
Why bothering?
● Your application gets better
● Your users get happier
● Your fingers too!
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
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>
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>
Root View Sub View
This means: no GTKPaned!
Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Replaced the GtkSpinButtons by
HildonEntries and not by
HildonPickerButtons because the
changes are shown immediately in
the image.
Assign the numeric GtkInputMode
Text is the focus here, so, instead of a
GtkNotebook, the style properties are in a
GtkDialog launched from the text properties
HildonAppMenu
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>
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>
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.
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.
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>
EOG with no images loaded
EOG with an image loaded
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>
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>
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>