--- trunk/src/garmin_export.c 2009/12/07 16:22:17 232 +++ trunk/src/garmin_export.c 2009/12/09 19:45:36 233 @@ -30,7 +30,7 @@ typedef struct { GtkWidget *dialog; appdata_t *appdata; - GtkWidget *path_label, *ignore_found; + GtkWidget *ignore_found; GtkWidget *info_label; gpx_t *gpx; } export_context_t; @@ -105,62 +105,11 @@ return cnt; } -static void on_browse(GtkWidget *widget, gpointer data) { - GtkWidget *dialog; - - export_context_t *context = (export_context_t*)data; - - printf("Browse\n"); - -#ifdef USE_MAEMO - dialog = hildon_file_chooser_dialog_new(GTK_WINDOW(context->dialog), - GTK_FILE_CHOOSER_ACTION_SAVE); -#else - dialog = gtk_file_chooser_dialog_new(_("Save garmin GPX"), - GTK_WINDOW(context->dialog), - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, - NULL); -#endif - - printf("set filename <%s>\n", context->appdata->garmin_path); - - if(!g_file_test(context->appdata->garmin_path, G_FILE_TEST_EXISTS)) { - char *last_sep = strrchr(context->appdata->garmin_path, '/'); - if(last_sep) { - *last_sep = 0; // seperate path from file - - /* the user just created a new document */ - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog), - context->appdata->garmin_path); - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), last_sep+1); - - /* restore full filename */ - *last_sep = '/'; - } - } else - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), - context->appdata->garmin_path); - - if (gtk_dialog_run (GTK_DIALOG(dialog)) == GTK_FM_OK) { - gchar *name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); - if(name) { - free(context->appdata->garmin_path); - context->appdata->garmin_path = strdup(name); - gtk_label_set_text(GTK_LABEL(context->path_label), - context->appdata->garmin_path); - } - } - - gtk_widget_destroy(dialog); -} - /* Our usual callback function */ static void export_update(GtkWidget *widget, gpointer data) { export_context_t *context = (export_context_t *)data; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(context->ignore_found))) + if(check_button_get_active(context->ignore_found)) context->appdata->garmin_ign_found = TRUE; else context->appdata->garmin_ign_found = FALSE; @@ -199,10 +148,10 @@ GtkWidget *vbox = gtk_vbox_new(FALSE,2); gtk_box_pack_start_defaults(GTK_BOX(vbox), - context.ignore_found = gtk_check_button_new_with_label( + context.ignore_found = check_button_new_with_label( _("Ignore found caches"))); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.ignore_found), - appdata->garmin_ign_found); + check_button_set_active(context.ignore_found, + appdata->garmin_ign_found); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect (GTK_OBJECT(context.ignore_found), "clicked", GTK_SIGNAL_FUNC(export_update), (gpointer)&context); @@ -218,25 +167,8 @@ /* ------------------ path/file ------------------ */ gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new()); - GtkWidget *hbox = gtk_hbox_new(FALSE, 0); - GtkWidget *label = gtk_label_new(_("Export to:")); - gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE,0); - gtk_misc_set_alignment(GTK_MISC(label), 0.f, 0.5f); - GtkWidget *button = gtk_button_new_with_label(_("Browse")); -#if defined(USE_MAEMO) && (MAEMO_VERSION_MAJOR == 5) - hildon_gtk_widget_set_theme_size(button, - (HILDON_SIZE_FINGER_HEIGHT | HILDON_SIZE_AUTO_WIDTH)); -#endif - gtk_signal_connect(GTK_OBJECT(button), "clicked", - GTK_SIGNAL_FUNC(on_browse), (gpointer)&context); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE,0); - gtk_box_pack_start_defaults(GTK_BOX(vbox), hbox); - - context.path_label = gtk_label_new(appdata->garmin_path); - gtk_misc_set_alignment(GTK_MISC(context.path_label), 0.f, 0.5f); - gtk_label_set_ellipsize(GTK_LABEL(context.path_label), - PANGO_ELLIPSIZE_MIDDLE); - gtk_box_pack_start_defaults(GTK_BOX(vbox), context.path_label); + gtk_box_pack_start_defaults(GTK_BOX(vbox), + export_file(_("Save garmin GPX"), &appdata->garmin_path)); /* ----------------------------------- */