Eclipse SUMO - Simulation of Urban MObility
GUIDialog_GLObjChooser.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-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
16 // Class for the window that allows to choose a street, junction or vehicle
17 /****************************************************************************/
18 #ifndef GUIDialog_GLObjChooser_h
19 #define GUIDialog_GLObjChooser_h
20 
21 
22 // ===========================================================================
23 // included modules
24 // ===========================================================================
25 #include <config.h>
26 
27 #include <string>
28 #include <vector>
29 #include <set>
30 #include <fx.h>
32 
33 
34 // ===========================================================================
35 // class declarations
36 // ===========================================================================
37 class GUIGlChildWindow;
38 class GUIGlObjectStorage;
39 class GUIGlObject;
40 
41 
42 // ===========================================================================
43 // class definition
44 // ===========================================================================
51 class GUIDialog_GLObjChooser : public FXMainWindow {
52  // FOX-declarations
53  FXDECLARE(GUIDialog_GLObjChooser)
54 
55 public:
62  GUIDialog_GLObjChooser(GUIGlChildWindow* parent, FXIcon* icon, const FXString& title,
63  const std::vector<GUIGlID>& ids,
64  GUIGlObjectStorage& glStorage);
65 
66 
68  virtual ~GUIDialog_GLObjChooser();
69 
70 
75  return static_cast<GUIGlObject*>(mySelected);
76  }
77 
78 
79 
82 
84  long onCmdCenter(FXObject*, FXSelector, void*);
85 
87  long onCmdTrack(FXObject*, FXSelector, void*);
88 
90  long onCmdClose(FXObject*, FXSelector, void*);
91 
93  long onChgText(FXObject*, FXSelector, void*);
94 
96  long onCmdText(FXObject*, FXSelector, void*);
97 
99  long onListKeyPress(FXObject*, FXSelector, void*);
100 
102  long onCmdFilter(FXObject*, FXSelector, void*);
103 
105  long onCmdFilterSubstr(FXObject*, FXSelector, void*);
106 
108  long onCmdToggleSelection(FXObject*, FXSelector, void*);
109 
111  long onCmdLocateByName(FXObject*, FXSelector, void*);
113 
115  void show();
116 
117 protected:
118 
120  virtual void toggleSelection(int listIndex);
121 
123  void refreshList(const std::vector<GUIGlID>& ids);
124 
126  virtual std::string getObjectName(GUIGlObject* o) const;
127 
128 private:
130  FXList* myList;
131 
133  FXButton* myCenterButton;
134 
136  FXButton* myTrackButton;
137 
140 
143 
145  FXTextField* myTextEntry;
146 
148  //volatile pointers to GUIGlObject
149  std::set<GUIGlID> myIDs;
150 
153 
154 protected:
156 
157 };
158 
159 
160 #endif
161 
162 /****************************************************************************/
163 
GUIGlObject.h
GUIDialog_GLObjChooser::myLocateByName
bool myLocateByName
whether to locate by object name instead of id
Definition: GUIDialog_GLObjChooser.h:152
GUIDialog_GLObjChooser::myList
FXList * myList
The list that holds the ids.
Definition: GUIDialog_GLObjChooser.h:130
GUIGlObjectStorage
A storage for of displayed objects via their numerical id.
Definition: GUIGlObjectStorage.h:51
GUIDialog_GLObjChooser::mySelected
GUIGlObject * mySelected
The chosen id.
Definition: GUIDialog_GLObjChooser.h:142
GUIDialog_GLObjChooser::~GUIDialog_GLObjChooser
virtual ~GUIDialog_GLObjChooser()
Destructor.
Definition: GUIDialog_GLObjChooser.cpp:97
GUIDialog_GLObjChooser::onCmdClose
long onCmdClose(FXObject *, FXSelector, void *)
Callback: The dialog shall be closed.
Definition: GUIDialog_GLObjChooser.cpp:137
GUIDialog_GLObjChooser::onCmdToggleSelection
long onCmdToggleSelection(FXObject *, FXSelector, void *)
Callback: Toggle selection status of current object.
Definition: GUIDialog_GLObjChooser.cpp:263
GUIDialog_GLObjChooser::onListKeyPress
long onListKeyPress(FXObject *, FXSelector, void *)
Callback: Selects to current item if enter is pressed.
Definition: GUIDialog_GLObjChooser.cpp:189
GUIDialog_GLObjChooser::onCmdFilterSubstr
long onCmdFilterSubstr(FXObject *, FXSelector, void *)
Callback: Hides unmatched items if pressed.
Definition: GUIDialog_GLObjChooser.cpp:219
GUIDialog_GLObjChooser::onCmdCenter
long onCmdCenter(FXObject *, FXSelector, void *)
Callback: The selected item shall be centered within the calling view.
Definition: GUIDialog_GLObjChooser.cpp:110
GUIDialog_GLObjChooser::onChgText
long onChgText(FXObject *, FXSelector, void *)
Callback: Something has been typed into the the field.
Definition: GUIDialog_GLObjChooser.cpp:144
GUIDialog_GLObjChooser::getObjectName
virtual std::string getObjectName(GUIGlObject *o) const
@bbrief retrieve name for the given object
Definition: GUIDialog_GLObjChooser.cpp:235
GUIDialog_GLObjChooser::onCmdFilter
long onCmdFilter(FXObject *, FXSelector, void *)
Callback: Hides unselected items if pressed.
Definition: GUIDialog_GLObjChooser.cpp:203
GUIDialog_GLObjChooser::onCmdLocateByName
long onCmdLocateByName(FXObject *, FXSelector, void *)
Callback: Toggle locator by name.
Definition: GUIDialog_GLObjChooser.cpp:281
GUIDialog_GLObjChooser::myParent
GUIGlChildWindow * myParent
The parent window.
Definition: GUIDialog_GLObjChooser.h:139
FOX_CONSTRUCTOR
#define FOX_CONSTRUCTOR(classname)
Definition: config.h:13
GUIDialog_GLObjChooser::myTextEntry
FXTextField * myTextEntry
The text field.
Definition: GUIDialog_GLObjChooser.h:145
GUIDialog_GLObjChooser::myTrackButton
FXButton * myTrackButton
The button that triggers tracking on the select vehicle.
Definition: GUIDialog_GLObjChooser.h:136
GUIGlObject
Definition: GUIGlObject.h:65
GUIDialog_GLObjChooser::toggleSelection
virtual void toggleSelection(int listIndex)
toggle selection (handled differently in NETEDIT)
Definition: GUIDialog_GLObjChooser.cpp:306
GUIDialog_GLObjChooser::myCenterButton
FXButton * myCenterButton
The button that triggers centering on the select object.
Definition: GUIDialog_GLObjChooser.h:133
GUIDialog_GLObjChooser::onCmdText
long onCmdText(FXObject *, FXSelector, void *)
Callback: Selects to current item if enter is pressed.
Definition: GUIDialog_GLObjChooser.cpp:178
GUIDialog_GLObjChooser::GUIDialog_GLObjChooser
GUIDialog_GLObjChooser(GUIGlChildWindow *parent, FXIcon *icon, const FXString &title, const std::vector< GUIGlID > &ids, GUIGlObjectStorage &glStorage)
Constructor.
Definition: GUIDialog_GLObjChooser.cpp:62
GUIDialog_GLObjChooser::onCmdTrack
long onCmdTrack(FXObject *, FXSelector, void *)
Callback: The selected vehicle shall be tracked within the calling view.
Definition: GUIDialog_GLObjChooser.cpp:121
GUIDialog_GLObjChooser::myIDs
std::set< GUIGlID > myIDs
myList contains (void) pointers to elements of myIDs instead of the more
Definition: GUIDialog_GLObjChooser.h:149
GUIDialog_GLObjChooser::getObject
GUIGlObject * getObject() const
Returns the chosen (selected) object.
Definition: GUIDialog_GLObjChooser.h:74
config.h
GUIDialog_GLObjChooser::show
void show()
sets the focus after the window is created to work-around bug in libfox
Definition: GUIDialog_GLObjChooser.cpp:103
GUIDialog_GLObjChooser::refreshList
void refreshList(const std::vector< GUIGlID > &ids)
update the list with the given ids
Definition: GUIDialog_GLObjChooser.cpp:244
GUIGlChildWindow
Definition: GUIGlChildWindow.h:40
GUIDialog_GLObjChooser
Definition: GUIDialog_GLObjChooser.h:51