Diff of /trunk/src/misc.c

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

revision 242 by harbaum, Sat Dec 12 20:56:23 2009 UTC revision 243 by harbaum, Mon Dec 14 20:07:54 2009 UTC
# Line 51  float roundf(float x); Line 51  float roundf(float x);
51  #define COORDINATE_PICKER  #define COORDINATE_PICKER
52  #endif  #endif
53    
54    static const char *decimal_point(void) {
55      static const char *point = ".";
56    
57      struct lconv *lconv = localeconv();
58    
59      if(lconv && lconv->decimal_point)
60        return lconv->decimal_point;
61    
62      return point;
63    }
64    
65  char strlastchr(char *str) {  char strlastchr(char *str) {
66    return str[strlen(str)]-1;    return str[strlen(str)]-1;
67  }  }
# Line 568  static gint on_lat_picker_button_press(G Line 579  static gint on_lat_picker_button_press(G
579                  minw[0] = digit_picker_create(0,5, min/10));                  minw[0] = digit_picker_create(0,5, min/10));
580      gtk_box_pack_start_defaults(GTK_BOX(hbox),      gtk_box_pack_start_defaults(GTK_BOX(hbox),
581                  minw[1] = digit_picker_create(0,9, min%10));                  minw[1] = digit_picker_create(0,9, min%10));
582      gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new("."), FALSE, FALSE, 0);      gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(decimal_point()),
583                           FALSE, FALSE, 0);
584    
585      gtk_box_pack_start_defaults(GTK_BOX(hbox),      gtk_box_pack_start_defaults(GTK_BOX(hbox),
586                  minfracw[0] = digit_picker_create(0,9, minfrac/100));                  minfracw[0] = digit_picker_create(0,9, minfrac/100));
# Line 613  static gint on_lat_picker_button_press(G Line 625  static gint on_lat_picker_button_press(G
625  #endif  #endif
626    
627  /* whatever there is in the entry: if it's illegal make it */  /* whatever there is in the entry: if it's illegal make it */
628  #define ILLEGAL_LAT  "X --° --,---'"  #define ILLEGAL_LAT  "X --° --%s---'"
629  #define ILLEGAL_LON  "X ---° --,---'"  #define ILLEGAL_LON  "X ---° --%s---'"
630    
631  static void pos_lat_check(GtkWidget *widget) {  static void pos_lat_check(GtkWidget *widget) {
632    if(isnan(pos_parse_lat((char*)gtk_entry_get_text(GTK_ENTRY(widget))))) {    if(isnan(lat_entry_get(widget))) {
633        char *str = g_strdup_printf(ILLEGAL_LAT, decimal_point());
634    
635  #ifndef COORDINATE_PICKER  #ifndef COORDINATE_PICKER
     gtk_entry_set_text(GTK_ENTRY(widget), ILLEGAL_LAT);  
 #else  
636      mark(widget, FALSE);      mark(widget, FALSE);
637      gtk_button_set_label(GTK_BUTTON(widget), ILLEGAL_LAT);      gtk_entry_set_text(GTK_ENTRY(widget), str);
638    #else
639        gtk_button_set_label(GTK_BUTTON(widget), str);
640  #endif  #endif
641    
642        g_free(str);
643    }    }
644  }  }
645    
646  static void pos_lon_check(GtkWidget *widget) {  static void pos_lon_check(GtkWidget *widget) {
647    if(isnan(pos_parse_lon((char*)gtk_entry_get_text(GTK_ENTRY(widget))))) {    if(isnan(lon_entry_get(widget))) {
648        char *str = g_strdup_printf(ILLEGAL_LON, decimal_point());
649    
650  #ifndef COORDINATE_PICKER  #ifndef COORDINATE_PICKER
     gtk_entry_set_text(GTK_ENTRY(widget), ILLEGAL_LON);  
 #else  
651      mark(widget, FALSE);      mark(widget, FALSE);
652      gtk_button_set_label(GTK_BUTTON(widget), ILLEGAL_LON);      gtk_entry_set_text(GTK_ENTRY(widget), str);
653    #else
654        gtk_button_set_label(GTK_BUTTON(widget), str);
655  #endif  #endif
656    
657        g_free(str);
658    }    }
659  }  }
660    
# Line 715  static gint on_lon_picker_button_press(G Line 735  static gint on_lon_picker_button_press(G
735                  minw[0] = digit_picker_create(0,5, min/10));                  minw[0] = digit_picker_create(0,5, min/10));
736      gtk_box_pack_start_defaults(GTK_BOX(hbox),      gtk_box_pack_start_defaults(GTK_BOX(hbox),
737                  minw[1] = digit_picker_create(0,9, min%10));                  minw[1] = digit_picker_create(0,9, min%10));
738      gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new("."), FALSE, FALSE, 0);      gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(decimal_point()),
739                           FALSE, FALSE, 0);
740    
741      gtk_box_pack_start_defaults(GTK_BOX(hbox),      gtk_box_pack_start_defaults(GTK_BOX(hbox),
742                  minfracw[0] = digit_picker_create(0,9, minfrac/100));                  minfracw[0] = digit_picker_create(0,9, minfrac/100));

Legend:
Removed from v.242  
changed lines
  Added in v.243