void GUISUMOViewParent::showLocator(GUIGlObjectType type, FXIcon *icon, FXString title) { myLocatorPopup->popdown(); myLocatorButton->killFocus(); myLocatorPopup->update(); GUIDialog_GLObjChooser *chooser = new GUIDialog_GLObjChooser(this, icon, title, type, GUIGlObjectStorage::gIDStorage); chooser->create(); chooser->show(); }
long GUISUMOViewParent::onCmdLocate(FXObject*, FXSelector sel, void*) { GUIGlObjectType type; std::vector<GUIGlID> ids; GUIIcon icon; std::string title; switch (FXSELID(sel)) { case MID_LOCATEJUNCTION: type = GLO_JUNCTION; ids = static_cast<GUINet*>(GUINet::getInstance())->getJunctionIDs(myParent->listInternal()); icon = ICON_LOCATEJUNCTION; title = "Junction Chooser"; break; case MID_LOCATEEDGE: type = GLO_EDGE; ids = GUIEdge::getIDs(myParent->listInternal()); icon = ICON_LOCATEEDGE; title = "Edge Chooser"; break; case MID_LOCATEVEHICLE: type = GLO_VEHICLE; static_cast<GUIVehicleControl&>(MSNet::getInstance()->getVehicleControl()).insertVehicleIDs(ids); icon = ICON_LOCATEVEHICLE; title = "Vehicle Chooser"; break; case MID_LOCATETLS: type = GLO_TLLOGIC; ids = static_cast<GUINet*>(GUINet::getInstance())->getTLSIDs(); icon = ICON_LOCATETLS; title = "Traffic Lights Chooser"; break; case MID_LOCATEADD: type = GLO_ADDITIONAL; ids = GUIGlObject_AbstractAdd::getIDList(); icon = ICON_LOCATEADD; title = "Additional Objects Chooser"; break; case MID_LOCATEPOI: type = GLO_POI; ids = static_cast<GUIShapeContainer&>(GUINet::getInstance()->getShapeContainer()).getPOIIds(); icon = ICON_LOCATESHAPE; title = "POI Chooser"; break; case MID_LOCATEPOLY: type = GLO_POLYGON; ids = static_cast<GUIShapeContainer&>(GUINet::getInstance()->getShapeContainer()).getPolygonIDs(); icon = ICON_LOCATESHAPE; title = "Polygon Chooser"; break; default: throw ProcessError("Unknown Message ID in onCmdLocate"); } myLocatorPopup->popdown(); myLocatorButton->killFocus(); myLocatorPopup->update(); GUIDialog_GLObjChooser* chooser = new GUIDialog_GLObjChooser( this, GUIIconSubSys::getIcon(icon), title.c_str(), type, ids, GUIGlObjectStorage::gIDStorage); chooser->create(); chooser->show(); return 1; }
long GUISUMOViewParent::onCmdLocate(FXObject*, FXSelector sel, void*) { std::vector<GUIGlID> ids; GUIIcon icon; std::string title; switch (FXSELID(sel)) { case MID_LOCATEJUNCTION: ids = static_cast<GUINet*>(GUINet::getInstance())->getJunctionIDs(myParent->listInternal()); icon = ICON_LOCATEJUNCTION; title = "Junction Chooser"; break; case MID_LOCATEEDGE: ids = GUIEdge::getIDs(myParent->listInternal()); icon = ICON_LOCATEEDGE; title = "Edge Chooser"; break; case MID_LOCATEVEHICLE: if (MSGlobals::gUseMesoSim) { #ifdef HAVE_INTERNAL static_cast<GUIMEVehicleControl*>(static_cast<GUINet*>(MSNet::getInstance())->getGUIMEVehicleControl())->insertVehicleIDs(ids); #endif } else { static_cast<GUIVehicleControl&>(MSNet::getInstance()->getVehicleControl()).insertVehicleIDs(ids); } icon = ICON_LOCATEVEHICLE; title = "Vehicle Chooser"; break; case MID_LOCATEPERSON: static_cast<GUIPersonControl&>(MSNet::getInstance()->getPersonControl()).insertPersonIDs(ids); icon = ICON_LOCATEPERSON; title = "Person Chooser"; break; case MID_LOCATETLS: ids = static_cast<GUINet*>(GUINet::getInstance())->getTLSIDs(); icon = ICON_LOCATETLS; title = "Traffic Lights Chooser"; break; case MID_LOCATEADD: ids = GUIGlObject_AbstractAdd::getIDList(); icon = ICON_LOCATEADD; title = "Additional Objects Chooser"; break; case MID_LOCATEPOI: ids = static_cast<GUIShapeContainer&>(GUINet::getInstance()->getShapeContainer()).getPOIIds(); icon = ICON_LOCATEPOI; title = "POI Chooser"; break; case MID_LOCATEPOLY: ids = static_cast<GUIShapeContainer&>(GUINet::getInstance()->getShapeContainer()).getPolygonIDs(); icon = ICON_LOCATEPOLY; title = "Polygon Chooser"; break; default: throw ProcessError("Unknown Message ID in onCmdLocate"); } myLocatorPopup->popdown(); myLocatorButton->killFocus(); myLocatorPopup->update(); GUIDialog_GLObjChooser* chooser = new GUIDialog_GLObjChooser( this, GUIIconSubSys::getIcon(icon), title.c_str(), ids, GUIGlObjectStorage::gIDStorage); chooser->create(); chooser->show(); return 1; }