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 |
} |
} |
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)); |
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 |
|
|
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)); |