57 #ifdef CHECK_MEMORY_LEAKS
59 #endif // CHECK_MEMORY_LEAKS
104 myParent(&app), myChosenValue(0), myChosenTarget(myChosenValue, NULL, MID_OPTION),
105 mySpeed(o.getDefaultSpeed()), mySpeedTarget(mySpeed),
107 myChosenTarget.setTarget(
this);
108 FXVerticalFrame* f1 =
109 new FXVerticalFrame(
this, LAYOUT_FILL_X | LAYOUT_FILL_Y, 0, 0, 0, 0, 0, 0, 0, 0);
111 FXGroupBox* gp =
new FXGroupBox(f1,
"Change Speed",
112 GROUPBOX_TITLE_LEFT | FRAME_RIDGE,
113 0, 0, 0, 0, 4, 4, 1, 1, 2, 0);
118 new FXRadioButton(gf1,
"Default", &myChosenTarget, FXDataTarget::ID_OPTION + 0,
119 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
120 0, 0, 0, 0, 2, 2, 0, 0);
126 new FXRadioButton(gf0,
"Loaded", &myChosenTarget, FXDataTarget::ID_OPTION + 1,
127 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP,
128 0, 0, 0, 0, 2, 2, 0, 0);
134 new FXRadioButton(gf2,
"Predefined: ", &myChosenTarget, FXDataTarget::ID_OPTION + 2,
135 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
136 0, 0, 0, 0, 2, 2, 0, 0);
138 new FXComboBox(gf2, 10,
this, MID_PRE_DEF,
139 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y | COMBOBOX_STATIC);
140 myPredefinedValues->appendItem(
"20 km/h");
141 myPredefinedValues->appendItem(
"40 km/h");
142 myPredefinedValues->appendItem(
"60 km/h");
143 myPredefinedValues->appendItem(
"80 km/h");
144 myPredefinedValues->appendItem(
"100 km/h");
145 myPredefinedValues->appendItem(
"120 km/h");
146 myPredefinedValues->appendItem(
"140 km/h");
147 myPredefinedValues->appendItem(
"160 km/h");
148 myPredefinedValues->appendItem(
"180 km/h");
149 myPredefinedValues->appendItem(
"200 km/h");
150 myPredefinedValues->setNumVisible(5);
156 new FXRadioButton(gf12,
"Free Entry: ", &myChosenTarget, FXDataTarget::ID_OPTION + 3,
157 ICON_BEFORE_TEXT | LAYOUT_SIDE_TOP | LAYOUT_CENTER_Y,
158 0, 0, 0, 0, 2, 2, 0, 0);
161 LAYOUT_TOP | FRAME_SUNKEN | FRAME_THICK);
162 myUserDefinedSpeed->setFormatString(
"%.0f km/h");
163 myUserDefinedSpeed->setIncrements(1, 10, 10);
164 myUserDefinedSpeed->setRange(0, 300);
165 myUserDefinedSpeed->setValue(
166 static_cast<GUILaneSpeedTrigger*>(myObject)->getDefaultSpeed() * 3.6);
169 BUTTON_INITIAL | BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT | LAYOUT_CENTER_X, 0, 0, 0, 0, 30, 30, 4, 4);
186 mySpeed = (
SUMOReal)(myUserDefinedSpeed->getValue() / 3.6);
188 myParent->updateChildren();
196 myChosenValue != 3 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
198 myParent->updateChildren();
205 mySpeed = (
SUMOReal)(
SUMOReal)((myPredefinedValues->getCurrentItem() * 20 + 20) / 3.6);
207 myParent->updateChildren();
215 myChosenValue != 2 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
217 myParent->updateChildren();
225 switch (myChosenValue) {
227 mySpeed = (
SUMOReal) static_cast<GUILaneSpeedTrigger*>(myObject)->getDefaultSpeed();
230 mySpeed = (
SUMOReal) static_cast<GUILaneSpeedTrigger*>(myObject)->getLoadedSpeed();
233 mySpeed = (
SUMOReal)((myPredefinedValues->getCurrentItem() * 20 + 20) / 3.6);
236 mySpeed = (
SUMOReal)(myUserDefinedSpeed->getValue() / 3.6);
243 myParent->updateChildren();
244 if (myChosenValue == 1) {
270 *myApplication, *myParent);
279 const std::string&
id,
const std::vector<MSLane*>& destLanes,
280 const std::string& aXMLFilename) :
286 std::vector<MSLane*>::const_iterator i;
287 for (i = destLanes.begin(); i != destLanes.end(); ++i) {
320 ret->
mkItem(
"speed [m/s]",
true,
338 glTranslated(pos.
x(), pos.
y(), 0);
339 glRotated(rot, 0, 0, 1);
340 glTranslated(0, -1.5, 0);
344 noPoints = (
int)(9.0 + s.
scale / 10.0);
352 glTranslated(0, 0, .1);
361 if (((
int) value + 1) % 10 == 0) {
362 value = (
SUMOReal)(((
int) value + 1) / 10 * 10);
369 if (idx != std::string::npos) {
378 glTranslated(0, 0, .1);
379 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
383 glRotated(180, 0, 1, 0);
384 glTranslated(-w / 2., 0.3, 0);