void* Entry::getValue() { void* ret = 0; switch (type) { case TextEntry: { const char ss = QString::toUtf8(((QLineEdit*) widget)->text()); ret = (void *) ss; } break; case ColorEntry: ret = (void *) (const char*) ((QLineEdit*) widget)->text().toLatin1(); break; case ChoiceEntry: ret = items[((QComboBox*) widget)->currentIndex()].value; break; case ListEntry: ret = items[((QListWidget*) widget)->currentIndex().row()].value; break; } return ret; } void *roadmap_dialog_get_data (const char *frame, const char *name) { return currentDialog->getEntryValue(frame, name); } static void roadmap_coord_ok (const char *name, void *data) { const char *argv[2]; RoadMapPosition position; argv[0] = (const char*) roadmap_dialog_get_data ("Coordinates", RoadMapLongitudeLabel); roadmap_log(ROADMAP_WARNING,"1coord: %s",argv[0]); position.longitude = roadmap_coord_to_binary (argv[0], 1); if (position.longitude > 180000000 || position.longitude < -180000000) { roadmap_messagebox("Warning", "Invalid longitude value"); return; } roadmap_log(ROADMAP_WARNING,"2coord: %s",argv[0]); argv[1] = (const char*) roadmap_dialog_get_data ("Coordinates", RoadMapLatitudeLabel); roadmap_log(ROADMAP_WARNING,"3coord: %s",argv[0]); position.latitude = roadmap_coord_to_binary (argv[1], 0); if (position.latitude > 90000000 || position.latitude < -90000000) { roadmap_messagebox("Warning", "Invalid latitude value"); return; } roadmap_log(ROADMAP_WARNING,"4coord: %s",argv[0]); roadmap_trip_set_point ("Selection", &position); roadmap_trip_set_point ("Address", &position); roadmap_trip_set_focus ("Address"); roadmap_screen_refresh (); roadmap_log(ROADMAP_WARNING,"coord pointer: %s",argv[0]); roadmap_history_add ('C', argv); roadmap_dialog_hide (name); }