--- trunk/src/mm_poi.c 2009/12/07 16:22:17 232 +++ trunk/src/mm_poi.c 2009/12/09 19:45:36 233 @@ -211,18 +211,11 @@ guint handler_id; int mode; gpx_t *gpx; - GtkWidget *path_label; #ifdef USE_MAEMO GtkWidget *launch; #endif } export_context_t; -static float distance_eval(GtkWidget *widget, export_context_t *context) { - char *p = (char*)gtk_entry_get_text(GTK_ENTRY(widget)); - float val = distance_parse(p, context->appdata->imperial); - return val; -} - static gboolean export_list_update(gpointer data) { char str[256]; export_context_t *context = (export_context_t*)data; @@ -245,7 +238,7 @@ 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->use_radius))) { + if(check_button_get_active(context->use_radius)) { textbox_enable(context->entry); context->appdata->mmpoi_use_radius = TRUE; } else { @@ -254,10 +247,10 @@ } context->appdata->mmpoi_dont_export_found = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(context->no_found)); + toggle_button_get_active(context->no_found); context->appdata->mmpoi_dont_export_disabled = - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(context->no_disabled)); + toggle_button_get_active(context->no_disabled); export_list_update(context); } @@ -265,7 +258,8 @@ static void export_radius_modified(GtkWidget *widget, gpointer data ) { export_context_t *context = (export_context_t*)data; - context->appdata->mmpoi_radius = distance_eval(context->entry, context); + context->appdata->mmpoi_radius = + dist_entry_get(context->entry, context->appdata->imperial); printf("Distance is %.2f km\n", context->appdata->mmpoi_radius); @@ -286,57 +280,6 @@ *flag = TRUE; } -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 POI database"), - 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->mmpoi_path); - - if(!g_file_test(context->appdata->mmpoi_path, G_FILE_TEST_EXISTS)) { - char *last_sep = strrchr(context->appdata->mmpoi_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->mmpoi_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->mmpoi_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->mmpoi_path); - context->appdata->mmpoi_path = strdup(name); - gtk_label_set_text(GTK_LABEL(context->path_label), - context->appdata->mmpoi_path); - } - } - - gtk_widget_destroy (dialog); -} - void mmpoi_export(appdata_t *appdata) { sqlite3 *db; char *zErrMsg = 0; @@ -375,7 +318,7 @@ /* ------------------ radius limit gui ------------------ */ GtkWidget *label, *hbox = gtk_hbox_new(FALSE,2); - context.use_radius = gtk_check_button_new_with_label( + context.use_radius = check_button_new_with_label( _("Limit export radius to:")); context.entry = dist_entry_new(appdata->mmpoi_radius, appdata->imperial); @@ -383,8 +326,7 @@ gtk_box_pack_start_defaults(GTK_BOX(hbox), context.entry); gtk_box_pack_start_defaults(GTK_BOX(vbox), hbox); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.use_radius), - appdata->mmpoi_use_radius); + check_button_set_active(context.use_radius, appdata->mmpoi_use_radius); /* Connect the "clicked" signal of the button to our callback */ gtk_signal_connect (GTK_OBJECT(context.use_radius), "clicked", @@ -394,23 +336,24 @@ G_CALLBACK(export_radius_modified), (gpointer)&context); /* ------------------ don't export found/disabled/archived -------------- */ - hbox = gtk_hbox_new(FALSE,2); label = gtk_label_new(_("Don't export")); gtk_misc_set_alignment(GTK_MISC(label), 0.f, 0.5f); - context.no_found = gtk_check_button_new_with_label(_("found")); - context.no_disabled = gtk_check_button_new_with_label(_("disabled/archived")); + GtkWidget *ihbox = gtk_hbox_new(FALSE,0); + context.no_found = toggle_button_new_with_label(_("found")); + context.no_disabled = toggle_button_new_with_label(_("disabled/archived")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.no_found), - appdata->mmpoi_dont_export_found); + toggle_button_set_active(context.no_found, + appdata->mmpoi_dont_export_found); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.no_disabled), - appdata->mmpoi_dont_export_disabled); + toggle_button_set_active(context.no_disabled, + appdata->mmpoi_dont_export_disabled); gtk_box_pack_start_defaults(GTK_BOX(hbox), label); - gtk_box_pack_start_defaults(GTK_BOX(hbox), context.no_found); - gtk_box_pack_start_defaults(GTK_BOX(hbox), context.no_disabled); + gtk_box_pack_start_defaults(GTK_BOX(ihbox), context.no_found); + gtk_box_pack_start_defaults(GTK_BOX(ihbox), context.no_disabled); + gtk_box_pack_start_defaults(GTK_BOX(hbox), ihbox); gtk_signal_connect (GTK_OBJECT(context.no_found), "clicked", GTK_SIGNAL_FUNC(export_update), (gpointer)&context); @@ -431,29 +374,16 @@ #ifdef USE_MAEMO gtk_box_pack_start_defaults(GTK_BOX(vbox), - context.launch = gtk_check_button_new_with_label( + context.launch = check_button_new_with_label( _("Launch Maemo Mapper after export"))); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.launch), - !appdata->mmpoi_dontlaunch); + check_button_set_active(context.launch, !appdata->mmpoi_dontlaunch); #endif /* ------------------ path/file ------------------ */ gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new()); - hbox = gtk_hbox_new(FALSE, 0); - 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")); - 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->mmpoi_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 POI database"), &appdata->mmpoi_path)); /* ------------------ info ------------------ */ @@ -464,7 +394,7 @@ if(GTK_RESPONSE_ACCEPT == gtk_dialog_run(GTK_DIALOG(context.dialog))) { #ifdef USE_MAEMO appdata->mmpoi_dontlaunch = - !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(context.launch)); + !check_button_get_active(context.launch); #endif /* remove existing database */ @@ -486,7 +416,7 @@ gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(wait_dialog)->vbox), pbar = gtk_progress_bar_new()); - GtkWidget *button = gtk_button_new_with_label(_("Cancel")); + GtkWidget *button = button_new_with_label(_("Cancel")); int cancelled = 0; gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(on_cancel), (gpointer)&cancelled);