+#endif
+
+static void
+settings_notify (GConfClient * client, guint cnxn_id, GConfEntry * entry, gpointer user_data)
+{
+ AppData * appdata = (AppData *) user_data;
+
+ g_debug ("%s changed", gconf_entry_get_key (entry));
+
+ if (strcmp (gconf_entry_get_key (entry), GCONF_KEY_ALGORITHM) == 0) {
+ if (gconf_entry_get_value (entry) != NULL && gconf_entry_get_value (entry)->type == GCONF_VALUE_INT) {
+ g_object_set (G_OBJECT (appdata->pitch),
+ "algorithm", gconf_value_get_int (gconf_entry_get_value (entry)),
+ NULL);
+ }
+ }
+ else if (strcmp (gconf_entry_get_key (entry), GCONF_KEY_CALIBRATION) == 0) {
+ /* TODO */
+ }
+ else if (strcmp (gconf_entry_get_key (entry), GCONF_KEY_DISPLAY_KEEPALIVE) == 0) {
+ if (gconf_entry_get_value (entry) != NULL && gconf_entry_get_value (entry)->type == GCONF_VALUE_BOOL) {
+ appdata->display_keepalive = gconf_value_get_bool (gconf_entry_get_value (entry));
+
+ if (appdata->display_keepalive && appdata->display_timer_id == 0)
+ display_keepalive (user_data);
+ else
+ display_keepalive_stop (appdata);
+ }
+ }
+ else {
+ g_warning ("unknown GConf key `%s'", gconf_entry_get_key (entry));
+ }
+}
+
+static void
+settings_activate (GtkWidget * widget, GtkWidget * main_win)
+{
+ settings_dialog_show (GTK_WINDOW (main_win));
+}
+
+static void
+about_activate (GtkWidget * widget, GtkWindow * main_win)
+{
+ GtkWidget *vbox;
+ GtkWidget *label;
+ GtkWidget *dialog;
+
+ dialog = gtk_dialog_new_with_buttons("About tuner", main_win,
+ GTK_DIALOG_MODAL |
+ GTK_DIALOG_DESTROY_WITH_PARENT |
+ GTK_DIALOG_NO_SEPARATOR,
+ NULL, NULL);
+
+ g_signal_connect (G_OBJECT (dialog), "delete_event", G_CALLBACK (gtk_widget_destroy), NULL);
+
+ vbox = gtk_vbox_new (FALSE, HILDON_MARGIN_DEFAULT);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), HILDON_MARGIN_DEFAULT);
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
+ label = gtk_label_new ("Tuner Tool is developed by Josep Torra and Jari Tenhunen.\n"
+ "http://n770galaxy.blogspot.com/\n");
+ gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 5);
+
+ gtk_widget_show_all (dialog);
+ gtk_dialog_run (GTK_DIALOG (dialog));
+
+ gtk_widget_destroy (dialog);
+}
+
+static HildonAppMenu *
+create_menu (GtkWidget *parent)
+{
+ HildonSizeType button_size = HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH;
+ HildonAppMenu *menu = HILDON_APP_MENU (hildon_app_menu_new ());
+ GtkButton *button;
+
+ button = GTK_BUTTON (hildon_gtk_button_new (button_size));
+ gtk_button_set_label (button, "Settings");
+ g_signal_connect_after (G_OBJECT (button), "clicked",
+ G_CALLBACK (settings_activate), parent);
+ hildon_app_menu_append (menu, button);
+
+ button = GTK_BUTTON (hildon_gtk_button_new (button_size));
+ gtk_button_set_label (button, "About");
+ g_signal_connect_after (G_OBJECT (button), "clicked",
+ G_CALLBACK (about_activate), parent);
+ hildon_app_menu_append (menu, button);
+
+ gtk_widget_show_all (GTK_WIDGET (menu));
+
+ return menu;
+}