Eclipse SUMO - Simulation of Urban MObility
GNEFrameModuls.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2020 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials are made available under the
5 // terms of the Eclipse Public License 2.0 which is available at
6 // https://www.eclipse.org/legal/epl-2.0/
7 // This Source Code may also be made available under the following Secondary
8 // Licenses when the conditions for such availability set forth in the Eclipse
9 // Public License 2.0 are satisfied: GNU General Public License, version 2
10 // or later which is available at
11 // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12 // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13 /****************************************************************************/
18 // Auxiliar class for GNEFrame Moduls
19 /****************************************************************************/
20 #pragma once
21 #include <config.h>
22 
25 
26 // ===========================================================================
27 // class declaration
28 // ===========================================================================
29 
30 class GNEFrame;
31 
32 // ===========================================================================
33 // class definitions
34 // ===========================================================================
35 
37 
38 public:
39  // ===========================================================================
40  // class TagSelector
41  // ===========================================================================
42 
43  class TagSelector : protected FXGroupBox {
46 
47  public:
49  TagSelector(GNEFrame* frameParent, GNETagProperties::TagType type, bool onlyDrawables = true);
50 
52  ~TagSelector();
53 
55  void showTagSelector();
56 
58  void hideTagSelector();
59 
62 
65 
67  void setCurrentTag(SumoXMLTag newTag);
68 
70  void refreshTagProperties();
71 
75  long onCmdSelectTagType(FXObject*, FXSelector, void*);
76 
78  long onCmdSelectTag(FXObject*, FXSelector, void*);
80 
81  protected:
82  FOX_CONSTRUCTOR(TagSelector)
83 
84  private:
87 
89  FXComboBox* myTagTypesMatchBox;
90 
92  FXComboBox* myTagsMatchBox;
93 
96 
98  std::vector<std::pair<std::string, GNETagProperties::TagType> > myListOfTagTypes;
99 
101  std::vector<std::pair<SumoXMLTag, const std::string> > myListOfTags;
102 
105  };
106 
107  // ===========================================================================
108  // class DemandElementSelector
109  // ===========================================================================
110 
111  class DemandElementSelector : protected FXGroupBox {
114 
115  public:
117  DemandElementSelector(GNEFrame* frameParent, SumoXMLTag demandElementTag);
118 
120  DemandElementSelector(GNEFrame* frameParent, const std::vector<GNETagProperties::TagType>& tagTypes);
121 
124 
127 
128  // @brief obtain allowed tags (derived from tagTypes)
129  const std::vector<SumoXMLTag>& getAllowedTags() const;
130 
132  void setDemandElement(GNEDemandElement* demandElement);
133 
136 
139 
141  bool isDemandElementSelectorShown() const;
142 
145 
148 
152  long onCmdSelectDemandElement(FXObject*, FXSelector, void*);
154 
155  protected:
156  FOX_CONSTRUCTOR(DemandElementSelector)
157 
158  private:
161 
164 
167 
169  std::vector<SumoXMLTag> myDemandElementTags;
170  };
171 
172  // ===========================================================================
173  // class HierarchicalElementTree
174  // ===========================================================================
175 
176  class HierarchicalElementTree : private FXGroupBox {
179 
180  public:
182  HierarchicalElementTree(GNEFrame* frameParent);
183 
186 
189 
192 
195 
198 
202  long onCmdShowChildMenu(FXObject*, FXSelector, void* data);
203 
205  long onCmdCenterItem(FXObject*, FXSelector, void*);
206 
208  long onCmdInspectItem(FXObject*, FXSelector, void*);
209 
211  long onCmdDeleteItem(FXObject*, FXSelector, void*);
212 
214  long onCmdMoveItemUp(FXObject*, FXSelector, void*);
215 
217  long onCmdMoveItemDown(FXObject*, FXSelector, void*);
219 
220  protected:
221  FOX_CONSTRUCTOR(HierarchicalElementTree)
222 
223  // @brief create pop-up menu in the positions X-Y for the clicked attribute carrier
224  void createPopUpMenu(int X, int Y, GNEAttributeCarrier* clickedAC);
225 
227  FXTreeItem* showAttributeCarrierParents();
228 
230  void showHierarchicalElementChildren(GNEHierarchicalElement* HE, FXTreeItem* itemParent);
231 
233  FXTreeItem* addListItem(GNEAttributeCarrier* AC, FXTreeItem* itemParent = nullptr, std::string prefix = "", std::string sufix = "");
234 
236  FXTreeItem* addListItem(FXTreeItem* itemParent, const std::string& text, FXIcon* icon, bool expanded);
237 
238  private:
241 
244 
247 
250 
253 
256 
259 
262 
265 
268 
271 
274 
277 
280 
283 
285  FXTreeList* myTreelist;
286 
288  std::map<FXTreeItem*, GNEAttributeCarrier*> myTreeItemToACMap;
289 
291  std::set<FXTreeItem*> myTreeItemsConnections;
292  };
293 
294  // ===========================================================================
295  // class DrawingShape
296  // ===========================================================================
297 
298  class DrawingShape : private FXGroupBox {
301 
302  public:
304  DrawingShape(GNEFrame* frameParent);
305 
307  ~DrawingShape();
308 
310  void showDrawingShape();
311 
313  void hideDrawingShape();
314 
316  void startDrawing();
317 
319  void stopDrawing();
320 
322  void abortDrawing();
323 
325  void addNewPoint(const Position& P);
326 
328  void removeLastPoint();
329 
331  const PositionVector& getTemporalShape() const;
332 
334  bool isDrawing() const;
335 
337  void setDeleteLastCreatedPoint(bool value);
338 
341 
345  long onCmdStartDrawing(FXObject*, FXSelector, void*);
346 
348  long onCmdStopDrawing(FXObject*, FXSelector, void*);
349 
351  long onCmdAbortDrawing(FXObject*, FXSelector, void*);
353 
354  protected:
355  FOX_CONSTRUCTOR(DrawingShape)
356 
357  private:
360 
363 
366 
369 
372 
375 
378  };
379 
380  // ===========================================================================
381  // class SelectorParent
382  // ===========================================================================
383 
384  class SelectorParent : protected FXGroupBox {
385  public:
387  SelectorParent(GNEFrame* frameParent);
388 
390  ~SelectorParent();
391 
393  std::string getIdSelected() const;
394 
396  void setIDSelected(const std::string& id);
397 
399  bool showSelectorParentModul(SumoXMLTag additionalTypeParent);
400 
403 
406 
407  private:
410 
413 
415  FXLabel* myParentsLabel;
416 
418  FXList* myParentsList;
419  };
420 
421  // ===========================================================================
422  // class OverlappedInspection
423  // ===========================================================================
424 
425  class OverlappedInspection : private FXGroupBox {
428 
429  public:
431  OverlappedInspection(GNEFrame* frameParent);
432 
434  OverlappedInspection(GNEFrame* frameParent, const SumoXMLTag filteredTag);
435 
438 
440  void showOverlappedInspection(const GNEViewNetHelper::ObjectsUnderCursor& objectsUnderCursor, const Position& clickedPosition);
441 
444 
446  bool overlappedInspectionShown() const;
447 
449  int getNumberOfOverlappedACs() const;
450 
452  bool checkSavedPosition(const Position& clickedPosition) const;
453 
455  bool nextElement(const Position& clickedPosition);
456 
458  bool previousElement(const Position& clickedPosition);
459 
462 
464  long onCmdNextElement(FXObject*, FXSelector, void*);
465 
467  long onCmdPreviousElement(FXObject*, FXSelector, void*);
468 
470  long onCmdShowList(FXObject*, FXSelector, void*);
471 
473  long onCmdListItemSelected(FXObject*, FXSelector, void*);
474 
476  long onCmdOverlappingHelp(FXObject*, FXSelector, void*);
478 
479  protected:
482 
484  void buildFXElements();
485 
486  private:
489 
491  FXButton* myPreviousElement;
492 
495 
497  FXButton* myNextElement;
498 
501 
503  FXButton* myHelpButton;
504 
507 
509  std::vector<GNEAttributeCarrier*> myOverlappedACs;
510 
512  size_t myItemIndex;
513 
516  };
517 
518  // ===========================================================================
519  // class PathCreator
520  // ===========================================================================
521 
522  class PathCreator : protected FXGroupBox {
524  FXDECLARE(GNEFrameModuls::PathCreator)
525 
526  public:
528  class Path {
529 
530  public:
532  Path(const SUMOVehicleClass vClass, GNEEdge* edge);
533 
535  Path(GNEViewNet* viewNet, const SUMOVehicleClass vClass, GNEEdge* edgeFrom, GNEEdge* edgeTo);
536 
538  const std::vector<GNEEdge*>& getSubPath() const;
539 
541  GNEAdditional* getFromBusStop() const;
542 
544  GNEAdditional* getToBusStop() const;
545 
547  bool isConflictVClass() const;
548 
550  bool isConflictDisconnected() const;
551 
552  protected:
554  std::vector<GNEEdge*> mySubPath;
555 
558 
561 
564 
567 
568  private:
570  Path();
571 
573  Path(Path*) = delete;
574 
576  Path& operator=(Path*) = delete;
577  };
578 
580  PathCreator(GNEFrame* frameParent);
581 
583  ~PathCreator();
584 
586  void showPathCreatorModul(SumoXMLTag tag, const bool firstElement, const bool consecutives);
587 
589  void hidePathCreatorModul();
590 
592  SUMOVehicleClass getVClass() const;
593 
595  void setVClass(SUMOVehicleClass vClass);
596 
598  bool addEdge(GNEEdge* edge, const bool shiftKeyPressed, const bool controlKeyPressed);
599 
601  std::vector<GNEEdge*> getSelectedEdges() const;
602 
604  bool addStoppingPlace(GNEAdditional* stoppingPlace, const bool shiftKeyPressed, const bool controlKeyPressed);
605 
607  GNEAdditional* getFromStoppingPlace(SumoXMLTag expectedTag) const;
608 
610  GNEAdditional* getToStoppingPlace(SumoXMLTag expectedTag) const;
611 
613  bool addRoute(GNEDemandElement* route, const bool shiftKeyPressed, const bool controlKeyPressed);
614 
616  GNEDemandElement* getRoute() const;
617 
619  const std::vector<Path>& getPath() const;
620 
623 
625  void updateEdgeColors();
626 
628  void drawTemporalRoute(const GUIVisualizationSettings& s) const;
629 
631  void createPath();
632 
634  void abortPathCreation();
635 
637  void removeLastElement();
638 
642  long onCmdCreatePath(FXObject*, FXSelector, void*);
643 
645  long onCmdAbortPathCreation(FXObject*, FXSelector, void*);
646 
648  long onCmdRemoveLastElement(FXObject*, FXSelector, void*);
649 
651  long onCmdShowCandidateEdges(FXObject*, FXSelector, void*);
653 
654  protected:
655  FOX_CONSTRUCTOR(PathCreator)
656 
657  // @brief creation mode
658  enum Mode {
659  CONSECUTIVE_EDGES = 1 << 0, // Path's edges are consecutives
660  NONCONSECUTIVE_EDGES = 1 << 1, // Path's edges aren't consecutives
661  START_EDGE = 1 << 2, // Path begins in an edge
662  END_EDGE = 1 << 3, // Path ends in an edge
663  SINGLE_ELEMENT = 1 << 4, // Path only had one element
664  ONLY_FROMTO = 1 << 5, // Path only had two elements (first and last)
665  START_BUSSTOP = 1 << 6, // Path begins in a busStop
666  END_BUSSTOP = 1 << 7, // Path ends in a busStop
667  ROUTE = 1 << 8, // Path uses a route
668  REQUIERE_FIRSTELEMENT = 1 << 9, // Path start always in a previous element
669  SHOW_CANDIDATE_EDGES = 1 << 10, // disable candidate edges
670  };
671 
673  void updateInfoRouteLabel();
674 
676  void clearPath();
677 
679  void recalculatePath();
680 
682  void setSpecialCandidates(GNEEdge* originEdge);
683 
685  void setPossibleCandidates(GNEEdge* originEdge, const SUMOVehicleClass vClass);
686 
689 
692 
695 
697  std::vector<GNEEdge*> mySelectedEdges;
698 
701 
704 
707 
709  std::vector<Path> myPath;
710 
713 
716 
719 
722 
724  FXCheckButton* myShowCandidateEdges;
725 
727  FXLabel* myShiftLabel;
728 
730  FXLabel* myControlLabel;
731 
732  private:
735 
738  };
739 
740  // ===========================================================================
741  // class PathLegend
742  // ===========================================================================
743 
744  class PathLegend : protected FXGroupBox {
745 
746  public:
748  PathLegend(GNEFrame* frameParent);
749 
751  ~PathLegend();
752 
754  void showPathLegendModul();
755 
757  void hidePathLegendModul();
758  };
759 
760  // ===========================================================================
761  // Functions
762  // ===========================================================================
763 
765  static FXLabel* buildRainbow(FXComposite* parent);
766 };
SUMOVehicleClass
Definition of vehicle classes to differ between different lane usage and authority types.
SumoXMLTag
Numbers representing SUMO-XML - element names.
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNEAdditional.h:47
This object is responsible for drawing a shape and for supplying a a popup menu. Messages are routete...
Definition: GNECrossing.h:41
An Element which don't belongs to GNENet but has influency in the simulation.
An Element which don't belongs to GNENet but has influency in the simulation.
A road/street connecting two junctions (netedit-version)
Definition: GNEEdge.h:49
GNEDemandElement * getCurrentDemandElement() const
get current demand element
void setDemandElement(GNEDemandElement *demandElement)
set current demand element
GNEEdge * getPersonPlanPreviousEdge() const
get previous edge for the current selected demand elemnt
long onCmdSelectDemandElement(FXObject *, FXSelector, void *)
const std::vector< SumoXMLTag > & getAllowedTags() const
GNEFrame * myFrameParent
pointer to frame Parent
std::vector< SumoXMLTag > myDemandElementTags
demand element tags
DemandElementSelector(GNEFrame *frameParent, SumoXMLTag demandElementTag)
FOX-declaration.
void showDemandElementSelector()
show demand element selector
FXComboBox * myDemandElementsMatchBox
comboBox with the list of elements type
bool isDemandElementSelectorShown() const
check if demand element selector is shown
void hideDemandElementSelector()
hide demand element selector
void refreshDemandElementSelector()
refresh demand element selector
GNEDemandElement * myCurrentDemandElement
current demand element
long onCmdAbortDrawing(FXObject *, FXSelector, void *)
Called when the user press abort drawing button.
void showDrawingShape()
show Drawing mode
FXLabel * myInformationLabel
Label with information.
void startDrawing()
start drawing
DrawingShape(GNEFrame *frameParent)
FOX-declaration.
bool getDeleteLastCreatedPoint()
get flag delete last created point
long onCmdStartDrawing(FXObject *, FXSelector, void *)
void hideDrawingShape()
hide Drawing mode
long onCmdStopDrawing(FXObject *, FXSelector, void *)
Called when the user press stop drawing button.
void stopDrawing()
stop drawing and check if shape can be created
FXButton * myAbortDrawingButton
button for abort drawing
void setDeleteLastCreatedPoint(bool value)
enable or disable delete last created point
const PositionVector & getTemporalShape() const
get Temporal shape
GNEFrame * myFrameParent
pointer to frame parent
void addNewPoint(const Position &P)
add new point to temporal shape
bool myDeleteLastCreatedPoint
flag to enable/disable delete point mode
PositionVector myTemporalShape
current drawed shape
void abortDrawing()
abort drawing
void removeLastPoint()
remove last added point
bool isDrawing() const
return true if currently a shape is drawed
FXButton * myStopDrawingButton
button for stop drawing
FXButton * myStartDrawingButton
button for start drawing
void showHierarchicalElementChildren(GNEHierarchicalElement *HE, FXTreeItem *itemParent)
show children of given hierarchical element
long onCmdDeleteItem(FXObject *, FXSelector, void *)
called when user click over option "delete" of child menu
GNEConnection * myClickedConnection
junction (casted from myClickedAC)
void removeCurrentEditedAttributeCarrier(const GNEAttributeCarrier *HE)
if given AttributeCarrier is the same of myHE, set it as nullptr
GNEDataSet * myClickedDataSet
data set element (casted from myClickedAC)
FXTreeItem * showAttributeCarrierParents()
show child of current attributeCarrier
long onCmdMoveItemUp(FXObject *, FXSelector, void *)
called when user click over option "Move up" of child menu
void refreshHierarchicalElementTree()
refresh HierarchicalElementTree
GNEDataInterval * myClickedDataInterval
data interval element (casted from myClickedAC)
GNEEdge * myClickedEdge
edge (casted from myClickedAC)
long onCmdInspectItem(FXObject *, FXSelector, void *)
called when user click over option "inspect" of child menu
long onCmdCenterItem(FXObject *, FXSelector, void *)
called when user click over option "center" of child Menu
GNETAZElement * myClickedTAZElement
TAZElement (casted from myClickedAC)
long onCmdMoveItemDown(FXObject *, FXSelector, void *)
called when user click over option "Move down" of child menu
long onCmdShowChildMenu(FXObject *, FXSelector, void *data)
GNECrossing * myClickedCrossing
crossing (casted from myClickedAC)
GNEAttributeCarrier * myClickedAC
pointer to current clicked Attribute Carrier
GNEShape * myClickedShape
shape (casted from myClickedAC)
void createPopUpMenu(int X, int Y, GNEAttributeCarrier *clickedAC)
FXTreeList * myTreelist
tree list to show the children of the element to erase
HierarchicalElementTree(GNEFrame *frameParent)
FOX-declaration.
void showHierarchicalElementTree(GNEAttributeCarrier *AC)
show HierarchicalElementTree
void hideHierarchicalElementTree()
hide HierarchicalElementTree
GNEDemandElement * myClickedDemandElement
demand element (casted from myClickedAC)
GNELane * myClickedLane
lane (casted from myClickedAC)
GNEGenericData * myClickedGenericData
generic data element (casted from myClickedAC)
FXTreeItem * addListItem(GNEAttributeCarrier *AC, FXTreeItem *itemParent=nullptr, std::string prefix="", std::string sufix="")
add item into list
GNEJunction * myClickedJunction
junction (casted from myClickedAC)
GNEAdditional * myClickedAdditional
additional (casted from myClickedAC)
std::set< FXTreeItem * > myTreeItemsConnections
set used to save tree items without AC assigned, the Incoming/Outcoming connections
std::map< FXTreeItem *, GNEAttributeCarrier * > myTreeItemToACMap
map used to save the FXTreeItems items with their vinculated AC
GNEHierarchicalElement * myHE
hierarchical element
FXButton * myHelpButton
button for help
long onCmdOverlappingHelp(FXObject *, FXSelector, void *)
Called when user press the help button.
Position mySavedClickedPosition
saved clicked position
void showOverlappedInspection(const GNEViewNetHelper::ObjectsUnderCursor &objectsUnderCursor, const Position &clickedPosition)
show template editor
const SumoXMLTag myFilteredTag
filtered tag
bool nextElement(const Position &clickedPosition)
try to go to next element if clicked position is near to saved position
size_t myItemIndex
current index item
FXList * myOverlappedElementList
list of overlapped elements
bool checkSavedPosition(const Position &clickedPosition) const
check if given position is near to saved position
FXButton * myNextElement
Next element button.
bool previousElement(const Position &clickedPosition)
try to go to previous element if clicked position is near to saved position
FXButton * myPreviousElement
Previous element button.
void buildFXElements()
build Fox Toolkit elemements
long onCmdShowList(FXObject *, FXSelector, void *)
show list of overlapped elements
long onCmdPreviousElement(FXObject *, FXSelector, void *)
Inspect previous element (from top to bot)
long onCmdListItemSelected(FXObject *, FXSelector, void *)
called when a list item is selected
FXButton * myCurrentIndexButton
Button for current index.
std::vector< GNEAttributeCarrier * > myOverlappedACs
objects under cursor
GNEFrame * myFrameParent
current frame parent
int getNumberOfOverlappedACs() const
get number of overlapped ACSs
long onCmdNextElement(FXObject *, FXSelector, void *)
Inspect next Element (from top to bot)
void hideOverlappedInspection()
hide template editor
bool overlappedInspectionShown() const
check if overlappedInspection modul is shown
bool myConflictDisconnected
flag to mark this path as disconnected
const std::vector< GNEEdge * > & getSubPath() const
get sub path
Path(Path *)=delete
Invalidated copy constructor.
GNEAdditional * getFromBusStop() const
get from additional
bool myConflictVClass
flag to mark this path as conflicted
GNEAdditional * myToBusStop
to additional (usually a busStop)
std::vector< GNEEdge * > mySubPath
sub path
GNEAdditional * getToBusStop() const
to additional
bool isConflictVClass() const
check if current path is conflict due vClass
Path & operator=(Path *)=delete
Invalidated assignment operator.
bool isConflictDisconnected() const
check if current path is conflict due is disconnected
GNEAdditional * myFromBusStop
from additional (usually a busStop)
GNEDemandElement * myRoute
route (usually a busStop)
bool addRoute(GNEDemandElement *route, const bool shiftKeyPressed, const bool controlKeyPressed)
add route
std::vector< GNEEdge * > getSelectedEdges() const
get current selected additionals
int myCreationMode
current creation mode
void updateInfoRouteLabel()
update InfoRouteLabel
std::vector< Path > myPath
vector with current path
const std::vector< Path > & getPath() const
get path route
bool drawCandidateEdgesWithSpecialColor() const
draw candidate edges with special color (Only for candidates, special and conflicted)
SUMOVehicleClass getVClass() const
get vClass
GNEAdditional * myToStoppingPlace
to additional (usually a busStop)
GNEDemandElement * getRoute() const
get route
void drawTemporalRoute(const GUIVisualizationSettings &s) const
draw temporal route
PathCreator & operator=(PathCreator *)=delete
Invalidated assignment operator.
void removeLastElement()
remove path element
void abortPathCreation()
abort path creation
FXLabel * myControlLabel
label for control information
long onCmdCreatePath(FXObject *, FXSelector, void *)
FXButton * myAbortCreationButton
button for abort route creation
void recalculatePath()
recalculate path
void showPathCreatorModul(SumoXMLTag tag, const bool firstElement, const bool consecutives)
show PathCreator for the given tag
GNEFrame * myFrameParent
current frame parent
void clearPath()
clear edges (and restore colors)
std::vector< GNEEdge * > mySelectedEdges
vector with selected edges
GNEAdditional * getToStoppingPlace(SumoXMLTag expectedTag) const
get to stoppingPlace
bool addEdge(GNEEdge *edge, const bool shiftKeyPressed, const bool controlKeyPressed)
add edge
long onCmdRemoveLastElement(FXObject *, FXSelector, void *)
Called when the user click over button "Remove las inserted edge".
void setPossibleCandidates(GNEEdge *originEdge, const SUMOVehicleClass vClass)
set edgereachability (This function will be called recursively)
void setVClass(SUMOVehicleClass vClass)
set vClass
bool addStoppingPlace(GNEAdditional *stoppingPlace, const bool shiftKeyPressed, const bool controlKeyPressed)
add stoppingPlace
GNEAdditional * myFromStoppingPlace
from additional (usually a busStop)
long onCmdShowCandidateEdges(FXObject *, FXSelector, void *)
Called when the user click over check button "show candidate edges".
SUMOVehicleClass myVClass
current vClass
void setSpecialCandidates(GNEEdge *originEdge)
set special candidates (This function will be called recursively)
FXLabel * myShiftLabel
label for shift information
FXLabel * myInfoRouteLabel
label with route info
PathCreator(PathCreator *)=delete
Invalidated copy constructor.
long onCmdAbortPathCreation(FXObject *, FXSelector, void *)
Called when the user click over button "Abort route creation".
FXButton * myRemoveLastInsertedElement
button for removing last inserted element
FXCheckButton * myShowCandidateEdges
CheckBox for show candidate edges.
PathCreator(GNEFrame *frameParent)
default constructor
void hidePathCreatorModul()
show PathCreator
FXButton * myFinishCreationButton
button for finish route creation
void updateEdgeColors()
update edge colors
GNEAdditional * getFromStoppingPlace(SumoXMLTag expectedTag) const
get from stoppingPlace
PathLegend(GNEFrame *frameParent)
constructor
void hidePathLegendModul()
hide Legend modul
void showPathLegendModul()
show Legend modul
void refreshSelectorParentModul()
Refresh list of Additional Parents Modul.
std::string getIdSelected() const
get currently parent additional selected
FXLabel * myParentsLabel
Label with parent name.
SelectorParent(GNEFrame *frameParent)
constructor
GNEFrame * myFrameParent
pointer to Frame Parent
void hideSelectorParentModul()
hide SelectorParent Modul
bool showSelectorParentModul(SumoXMLTag additionalTypeParent)
Show list of SelectorParent Modul.
FXList * myParentsList
List of parents.
SumoXMLTag myParentTag
current parent additional tag
void setIDSelected(const std::string &id)
select manually a element of the list
void hideTagSelector()
hide item selector
FXComboBox * myTagsMatchBox
comboBox with the list of tags
void setCurrentTagType(GNETagProperties::TagType tagType)
set current type manually
std::vector< std::pair< std::string, GNETagProperties::TagType > > myListOfTagTypes
list of tags types that will be shown in Match Box
GNETagProperties myInvalidTagProperty
dummy tag properties used if user select an invalid tag
TagSelector(GNEFrame *frameParent, GNETagProperties::TagType type, bool onlyDrawables=true)
FOX-declaration.
void refreshTagProperties()
due myCurrentTagProperties is a Reference, we need to refresh it when frameParent is show
GNETagProperties myCurrentTagProperties
current tag properties
GNEFrame * myFrameParent
pointer to Frame Parent
std::vector< std::pair< SumoXMLTag, const std::string > > myListOfTags
list of tags that will be shown in Match Box
FXComboBox * myTagTypesMatchBox
comboBox with tag type
long onCmdSelectTag(FXObject *, FXSelector, void *)
Called when the user select an elementin ComboBox.
const GNETagProperties & getCurrentTagProperties() const
get current type tag
long onCmdSelectTagType(FXObject *, FXSelector, void *)
void showTagSelector()
show item selector
void setCurrentTag(SumoXMLTag newTag)
set current type manually
static FXLabel * buildRainbow(FXComposite *parent)
build rainbow in frame modul
An Element which don't belongs to GNENet but has influency in the simulation.
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
Definition: GNELane.h:45
An Element which don't belongs to GNENet but has influency in the simulation.
Definition: GNETAZElement.h:45
class used to group all variables related with objects under cursor after a click over view
Stores the information about how to visualize structures.
A point in 2D or 3D with translation and scaling methods.
Definition: Position.h:36
A list of positions.