static void buildWaypointList(WaypointClient* userdata) { WaypointClient* anInstance = (WaypointClient*) userdata; Fl_Input_Choice * fromWPChoice = anInstance->frWps; Fl_Input_Choice * toWPChoice = anInstance->toWps; fromWPChoice->clear(); toWPChoice->clear(); Json::Value waypointsArray = anInstance->getWaypoints().get("waypoints",0); if (waypointsArray.size() == 0) { fromWPChoice->add("EMPTY"); toWPChoice->add("EMPTY"); } else { for (Json::ValueIterator itr = waypointsArray.begin(); itr != waypointsArray.end(); itr++) { Json::Value waypoint = *itr; string name = waypoint["name"].asString(); fromWPChoice->add(name.c_str()); toWPChoice->add(name.c_str()); } } fromWPChoice->value(0); toWPChoice->value(0); SelectedFromWP(NULL, anInstance); }
WaypointGUI(const char * name = 0) : Fl_Window(520, 300, name) { begin(); frWps = new Fl_Input_Choice(40, 10, 200, 25, "from"); frWps->add("EMPTY"); frWps->value(0); toWps = new Fl_Input_Choice(40, 45, 200, 25, "to"); toWps->add("EMPTY"); toWps->value(0); latIn = new Fl_Input(270, 10, 230, 25, "lat"); lonIn = new Fl_Input(270, 45, 230, 25, "lon"); eleIn = new Fl_Input(270, 80, 230, 25, "ele"); nameIn = new Fl_Input(270, 115, 230, 25, "name"); addrIn = new Fl_Multiline_Input(270, 150, 230, 70, "addr"); distBearIn = new Fl_Input(225, 260, 255, 25); removeWPButt = new Fl_Button(55, 80, 130, 25, "Remove Waypoint"); addWPButt = new Fl_Button(55, 115, 130, 25, "Add Waypoint"); modWPButt = new Fl_Button(55, 150, 130, 25, "Modify Waypoint"); getAddrButt = new Fl_Button(20, 185, 180, 25, "Get Addr for lat/lon"); //importJSONButt = new Fl_Button(20, 220, 180, 25, "Import Json Library"); distBearButt = new Fl_Button(20, 260, 180, 25, "Distance and Bearing"); end(); show(); }
Scheme_Object* spark_fltk_input_choice::add(int argc, Scheme_Object** argv) { DEFAULT_RET_INIT; Fl_Input_Choice* ic = _get_fl_input_choice(argc, argv, 0); if (ic) { if (!SCHEME_CHAR_STRINGP(argv[1])) scheme_wrong_type("add-choice", "string", 1, argc, argv); Scheme_Object* str = scheme_char_string_to_byte_string(argv[1]); std::string s = SCHEME_BYTE_STR_VAL(str); ic->add(s.c_str()); _ret_ = scheme_true; } DEFAULT_RET_FINISH; }