Revision as of 17:00, 15 November 2007 by ebra (Talk | contribs)

Using hardware keys with S60 and Maemo Platform

From Nokia Developer Wiki
Jump to: navigation, search


Both S60 Platform and Maemo Platform devices have a number of hardware keys for developers to use. The number of keys available varies between different devices. Both platforms have devices with full QWERTY keyboard. For example the E90 Communicator and the Nokia N810 Internet Tablet.

Nokia E90.png Nokia E90 Communicator

Nokia N810.png Nokia N810 Internet Tablet

Comparing S60 and Maemo Platforms

S60 Platform


Maemo Platform


typedef struct _AppData AppData;
struct _AppData
HildonProgram *program; /* handle to application */
HildonWindow *window; /* handle to app's window */
osso_context_t *osso; /* handle to osso */
/* Creates and initialises a main_view */
MainView* interface_main_view_new( AppData *data )
/* Zero memory with g_new0 */
MainView* result = g_new0( MainView, 1 );
/* Add hardware button listener to application */
"key_press_event", G_CALLBACK(callback_key_press), result);
/* Callback for hardware keys */
gboolean callback_key_press(GtkWidget * widget, GdkEventKey * event, gpointer data)
switch (event->keyval) {
case GDK_Up:
callback_up( NULL, data );
return TRUE;
case GDK_Down:
callback_down( NULL, data );
return TRUE;
case GDK_Left:
callback_left( NULL, data );
return TRUE;
case GDK_Right:
callback_right( NULL, data );
return TRUE;
case GDK_Return:
callback_reset( NULL, data );
return TRUE;
case GDK_F6:
callback_fullscreen( NULL, data );
return TRUE;
case GDK_F7: /* "Increase (zoom in)" */
return FALSE;
case GDK_F8: /* "Decrease (zoom out)" */
return FALSE;
case GDK_Escape: /* "Cancel/Close" */
return FALSE;
return FALSE;
55 page views in the last 30 days.