58 #ifdef CHECK_MEMORY_LEAKS
60 #endif // CHECK_MEMORY_LEAKS
105 myParent(&app), myChosenValue(0), myChosenTarget(myChosenValue, NULL, MID_OPTION),
106 mySpeed(o.getDefaultSpeed()), mySpeedTarget(mySpeed),
108 myChosenTarget.setTarget(
this);
109 FXVerticalFrame* f1 =
110 new FXVerticalFrame(
this, LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
112 FXGroupBox* gp =
new FXGroupBox(f1,
"Change Speed",
113 GROUPBOX_TITLE_LEFT | FRAME_RIDGE,
114 0, 0, 0, 0, 4, 4, 1, 1, 2, 0);
119 new FXRadioButton(gf1,
"Default", &myChosenTarget, FXDataTarget::ID_OPTION + 0,
120 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
121 0, 0, 0, 0, 2, 2, 0, 0);
127 new FXRadioButton(gf0,
"Loaded", &myChosenTarget, FXDataTarget::ID_OPTION + 1,
128 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
129 0, 0, 0, 0, 2, 2, 0, 0);
135 new FXRadioButton(gf2,
"Predefined: ", &myChosenTarget, FXDataTarget::ID_OPTION + 2,
136 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
137 0, 0, 0, 0, 2, 2, 0, 0);
139 new FXComboBox(gf2, 10,
this, MID_PRE_DEF,
140 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y | COMBOBOX_STATIC);
141 myPredefinedValues->appendItem(
"20 km/h");
142 myPredefinedValues->appendItem(
"40 km/h");
143 myPredefinedValues->appendItem(
"60 km/h");
144 myPredefinedValues->appendItem(
"80 km/h");
145 myPredefinedValues->appendItem(
"100 km/h");
146 myPredefinedValues->appendItem(
"120 km/h");
147 myPredefinedValues->appendItem(
"140 km/h");
148 myPredefinedValues->appendItem(
"160 km/h");
149 myPredefinedValues->appendItem(
"180 km/h");
150 myPredefinedValues->appendItem(
"200 km/h");
151 myPredefinedValues->setNumVisible(5);
157 new FXRadioButton(gf12,
"Free Entry: ", &myChosenTarget, FXDataTarget::ID_OPTION + 3,
158 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
159 0, 0, 0, 0, 2, 2, 0, 0);
162 LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK);
163 myUserDefinedSpeed->setFormatString(
"%.0f km/h");
164 myUserDefinedSpeed->setIncrements(1, 10, 10);
165 myUserDefinedSpeed->setRange(0, 300);
166 myUserDefinedSpeed->setValue(
167 static_cast<GUILaneSpeedTrigger*>(myObject)->getDefaultSpeed() * 3.6);
170 BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
187 mySpeed = (
SUMOReal)(myUserDefinedSpeed->getValue() / 3.6);
189 myParent->updateChildren();
197 myChosenValue != 3 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
199 myParent->updateChildren();
206 mySpeed = (
SUMOReal)(
SUMOReal)((myPredefinedValues->getCurrentItem() * 20 + 20) / 3.6);
208 myParent->updateChildren();
216 myChosenValue != 2 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
218 myParent->updateChildren();
226 switch (myChosenValue) {
228 mySpeed = (
SUMOReal) static_cast<GUILaneSpeedTrigger*>(myObject)->getDefaultSpeed();
231 mySpeed = (
SUMOReal) static_cast<GUILaneSpeedTrigger*>(myObject)->getLoadedSpeed();
234 mySpeed = (
SUMOReal)((myPredefinedValues->getCurrentItem() * 20 + 20) / 3.6);
237 mySpeed = (
SUMOReal)(myUserDefinedSpeed->getValue() / 3.6);
244 myParent->updateChildren();
245 if (myChosenValue == 1) {
271 *myApplication, *myParent);
280 const std::string&
id,
const std::vector<MSLane*>& destLanes,
281 const std::string& aXMLFilename) :
287 std::vector<MSLane*>::const_iterator i;
288 for (i = destLanes.begin(); i != destLanes.end(); ++i) {
321 ret->
mkItem(
"speed [m/s]",
true,
339 glTranslated(pos.
x(), pos.
y(), 0);
340 glRotated(rot, 0, 0, 1);
341 glTranslated(0, -1.5, 0);
345 noPoints = (
int)(9.0 + s.
scale / 10.0);
353 glTranslated(0, 0, .1);
362 if (((
int) value + 1) % 10 == 0) {
363 value = (
SUMOReal)(((
int) value + 1) / 10 * 10);
370 if (idx != std::string::npos) {
379 glTranslated(0, 0, .1);
380 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
384 glRotated(180, 0, 1, 0);
385 glTranslated(-w / 2., 0.3, 0);