Diff of /trunk/src/garmin_export.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 232 by harbaum, Thu Nov 19 13:33:35 2009 UTC revision 233 by harbaum, Wed Dec 9 19:45:36 2009 UTC
# Line 30  Line 30 
30  typedef struct {  typedef struct {
31    GtkWidget *dialog;    GtkWidget *dialog;
32    appdata_t *appdata;    appdata_t *appdata;
33    GtkWidget *path_label, *ignore_found;    GtkWidget *ignore_found;
34    GtkWidget *info_label;    GtkWidget *info_label;
35    gpx_t *gpx;    gpx_t *gpx;
36  } export_context_t;  } export_context_t;
# Line 105  static int export_list_count(appdata_t * Line 105  static int export_list_count(appdata_t *
105    return cnt;    return cnt;
106  }  }
107    
 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);  
 }  
   
108  /* Our usual callback function */  /* Our usual callback function */
109  static void export_update(GtkWidget *widget, gpointer data) {  static void export_update(GtkWidget *widget, gpointer data) {
110    export_context_t *context = (export_context_t *)data;    export_context_t *context = (export_context_t *)data;
111    
112    if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(context->ignore_found)))    if(check_button_get_active(context->ignore_found))
113      context->appdata->garmin_ign_found = TRUE;      context->appdata->garmin_ign_found = TRUE;
114    else    else
115      context->appdata->garmin_ign_found = FALSE;      context->appdata->garmin_ign_found = FALSE;
# Line 199  void garmin_export(appdata_t *appdata) { Line 148  void garmin_export(appdata_t *appdata) {
148    GtkWidget *vbox = gtk_vbox_new(FALSE,2);    GtkWidget *vbox = gtk_vbox_new(FALSE,2);
149    
150    gtk_box_pack_start_defaults(GTK_BOX(vbox),    gtk_box_pack_start_defaults(GTK_BOX(vbox),
151                context.ignore_found = gtk_check_button_new_with_label(                context.ignore_found = check_button_new_with_label(
152               _("Ignore found caches")));               _("Ignore found caches")));
153    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(context.ignore_found),    check_button_set_active(context.ignore_found,
154                                 appdata->garmin_ign_found);                             appdata->garmin_ign_found);
155    /* Connect the "clicked" signal of the button to our callback */    /* Connect the "clicked" signal of the button to our callback */
156    gtk_signal_connect (GTK_OBJECT(context.ignore_found), "clicked",    gtk_signal_connect (GTK_OBJECT(context.ignore_found), "clicked",
157                        GTK_SIGNAL_FUNC(export_update), (gpointer)&context);                        GTK_SIGNAL_FUNC(export_update), (gpointer)&context);
# Line 218  void garmin_export(appdata_t *appdata) { Line 167  void garmin_export(appdata_t *appdata) {
167    /* ------------------ path/file ------------------ */    /* ------------------ path/file ------------------ */
168    gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new());    gtk_box_pack_start_defaults(GTK_BOX(vbox), gtk_hseparator_new());
169    
170    GtkWidget *hbox = gtk_hbox_new(FALSE, 0);    gtk_box_pack_start_defaults(GTK_BOX(vbox),
171    GtkWidget *label = gtk_label_new(_("Export to:"));        export_file(_("Save garmin GPX"), &appdata->garmin_path));
   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);  
172    
173    /* ----------------------------------- */    /* ----------------------------------- */
174    

Legend:
Removed from v.232  
changed lines
  Added in v.233