#include "viking.h"
#include "thumbnails.h"
#include "garminsymbols.h"
+#include "degrees_converters.h"
#include <stdlib.h>
#include <string.h>
if ( gtk_dialog_run ( GTK_DIALOG(dialog) ) == GTK_RESPONSE_ACCEPT )
{
- ll->lat = atof ( gtk_entry_get_text ( GTK_ENTRY(lat) ) );
- ll->lon = atof ( gtk_entry_get_text ( GTK_ENTRY(lon) ) );
+ ll->lat = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(lat) ) );
+ ll->lon = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(lon) ) );
gtk_widget_destroy ( dialog );
return TRUE;
}
symbollabel = gtk_label_new ("Symbol:");
GtkTreeIter iter;
- store = gtk_list_store_new(2, G_TYPE_STRING, GDK_TYPE_PIXBUF);
+ store = gtk_list_store_new(3, G_TYPE_STRING, GDK_TYPE_PIXBUF, G_TYPE_STRING);
symbolentry = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store));
- gtk_combo_box_set_wrap_width(symbolentry, 3);
+ gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(symbolentry), 3);
gtk_list_store_append (store, &iter);
- gtk_list_store_set (store, &iter, 0, "(none)", 1, NULL, -1);
+ gtk_list_store_set (store, &iter, 0, NULL, 1, NULL, 2, "(none)", -1);
a_populate_sym_list(store);
r = gtk_cell_renderer_pixbuf_new ();
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (symbolentry), r, FALSE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (symbolentry), r, "pixbuf", 1, NULL);
+ r = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (symbolentry), r, FALSE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (symbolentry), r, "text", 2, NULL);
+
if ( dest == NULL && wp->symbol ) {
gboolean ok;
gchar *sym;
for (ok = gtk_tree_model_get_iter_first ( GTK_TREE_MODEL(store), &iter ); ok; ok = gtk_tree_model_iter_next ( GTK_TREE_MODEL(store), &iter)) {
gtk_tree_model_get ( GTK_TREE_MODEL(store), &iter, 0, (void *)&sym, -1 );
- if (!strcmp(sym, wp->symbol)) {
+ if (sym && !strcmp(sym, wp->symbol)) {
g_free(sym);
break;
} else {
g_free(sym);
}
}
- gtk_combo_box_set_active_iter(symbolentry, &iter);
+ gtk_combo_box_set_active_iter(GTK_COMBO_BOX(symbolentry), &iter);
}
}
{
/* Do It */
*dest = name;
- ll.lat = atof ( gtk_entry_get_text ( GTK_ENTRY(latentry) ) );
- ll.lon = atof ( gtk_entry_get_text ( GTK_ENTRY(lonentry) ) );
+ ll.lat = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(latentry) ) );
+ ll.lon = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(lonentry) ) );
vik_coord_load_from_latlon ( &(wp->coord), coord_mode, &ll );
wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) );
vik_waypoint_set_comment ( wp, gtk_entry_get_text ( GTK_ENTRY(commententry) ) );
{
GtkTreeIter iter, first;
gtk_tree_model_get_iter_first ( GTK_TREE_MODEL(store), &first );
- if ( !gtk_combo_box_get_active_iter ( symbolentry, &iter ) || !memcmp(&iter, &first, sizeof(GtkTreeIter)) ) {
+ if ( !gtk_combo_box_get_active_iter ( GTK_COMBO_BOX(symbolentry), &iter ) || !memcmp(&iter, &first, sizeof(GtkTreeIter)) ) {
vik_waypoint_set_symbol ( wp, NULL );
} else {
gchar *sym;
}
else
{
- ll.lat = atof ( gtk_entry_get_text ( GTK_ENTRY(latentry) ) );
- ll.lon = atof ( gtk_entry_get_text ( GTK_ENTRY(lonentry) ) );
+ ll.lat = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(latentry) ) );
+ ll.lon = convert_dms_to_dec ( gtk_entry_get_text ( GTK_ENTRY(lonentry) ) );
vik_coord_load_from_latlon ( &(wp->coord), coord_mode, &ll );
wp->altitude = atof ( gtk_entry_get_text ( GTK_ENTRY(altentry) ) );
if ( (! wp->comment) || strcmp ( wp->comment, gtk_entry_get_text ( GTK_ENTRY(commententry) ) ) != 0 )
{
GtkTreeIter iter, first;
gtk_tree_model_get_iter_first ( GTK_TREE_MODEL(store), &first );
- if ( !gtk_combo_box_get_active_iter ( symbolentry, &iter ) || !memcmp(&iter, &first, sizeof(GtkTreeIter)) ) {
+ if ( !gtk_combo_box_get_active_iter ( GTK_COMBO_BOX(symbolentry), &iter ) || !memcmp(&iter, &first, sizeof(GtkTreeIter)) ) {
vik_waypoint_set_symbol ( wp, NULL );
} else {
gchar *sym;