73 FXIMPLEMENT(
GUIDialog_ViewSettings, FXDialogBox, GUIDialog_ViewSettingsMap, ARRAYNUMBER(GUIDialog_ViewSettingsMap))
81 myParent(parent), mySettings(settings),
82 myDecals(decals), myDecalsLock(decalsLock),
84 myBackup = (*mySettings);
92 for (std::vector<std::string>::const_iterator i = names.begin(); i != names.end(); ++i) {
93 int index = mySchemeName->appendItem((*i).c_str());
94 if ((*i) == mySettings->name) {
95 mySchemeName->setCurrentItem((FXint) index);
98 mySchemeName->setNumVisible(5);
105 new FXVerticalSeparator(frame0);
107 mySaveViewPort =
new FXCheckButton(frame0,
"Viewport");
108 mySaveDelay =
new FXCheckButton(frame0,
"Delay");
109 mySaveDecals =
new FXCheckButton(frame0,
"Decals");
110 mySaveBreakpoints =
new FXCheckButton(frame0,
"Breakpoints");
111 if (settings->netedit) {
112 mySaveBreakpoints->disable();
120 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
130 new FXLabel(frame11,
"Decals:");
131 myDecalsFrame =
new FXVerticalFrame(frame11);
140 myShowGrid->setCheck(mySettings->showGrid);
141 new FXLabel(m12,
"");
145 myGridXSizeDialer->setRange(1, 10000);
146 myGridXSizeDialer->setValue(mySettings->gridXSize);
150 myGridYSizeDialer->setRange(1, 10000);
151 myGridYSizeDialer->setValue(mySettings->gridXSize);
156 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
166 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
178 mySettings->edgeColorer.fill(*myLaneEdgeColorMode);
179 mySettings->edgeScaler.fill(*myLaneEdgeScaleMode);
180 myLaneEdgeColorMode->setNumVisible((
int)mySettings->edgeColorer.size());
181 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->edgeScaler.size());
183 mySettings->laneColorer.fill(*myLaneEdgeColorMode);
184 mySettings->laneScaler.fill(*myLaneEdgeScaleMode);
185 myLaneEdgeColorMode->setNumVisible((
int)mySettings->laneColorer.size());
186 myLaneEdgeScaleMode->setNumVisible((
int)mySettings->laneScaler.size());
192 myShowLaneBorders->setCheck(mySettings->laneShowBorders);
194 myShowBikeMarkings->setCheck(mySettings->showBikeMarkings);
196 myShowLaneDecals->setCheck(mySettings->showLinkDecals);
199 myShowLinkRules->setCheck(mySettings->showLinkRules);
202 myShowRails->setCheck(mySettings->showRails);
205 myHideMacroConnectors->setCheck(mySettings->hideConnectors);
208 myShowLaneDirection->setCheck(mySettings->showLaneDirection);
211 myShowSublanes->setCheck(mySettings->showSublanes);
213 mySpreadSuperposed->setCheck(mySettings->spreadSuperposed);
216 myLaneWidthUpscaleDialer->setRange(0, 10000);
217 myLaneWidthUpscaleDialer->setValue(mySettings->laneWidthExaggeration);
221 myLaneMinWidthDialer->setRange(0, 10000);
222 myLaneMinWidthDialer->setValue(mySettings->laneMinSize);
225 myEdgeNamePanel =
new NamePanel(m22,
this,
"Show edge name", mySettings->edgeName);
226 myStreetNamePanel =
new NamePanel(m22,
this,
"Show street name", mySettings->streetName);
231 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
237 myVehicleShapeDetail->appendItem(
"'triangles'");
238 myVehicleShapeDetail->appendItem(
"'boxes'");
239 myVehicleShapeDetail->appendItem(
"'simple shapes'");
240 myVehicleShapeDetail->appendItem(
"'raster images'");
241 myVehicleShapeDetail->setNumVisible(4);
242 myVehicleShapeDetail->setCurrentItem(settings->vehicleQuality);
249 mySettings->vehicleColorer.fill(*myVehicleColorMode);
250 myVehicleColorMode->setNumVisible((
int)mySettings->vehicleColorer.size());
259 myShowBlinker->setCheck(mySettings->showBlinker);
262 myShowMinGap->setCheck(mySettings->drawMinGap);
265 myShowBTRange->setCheck(mySettings->showBTRange);
272 myVehicleNamePanel =
new NamePanel(m33,
this,
"Show vehicle name", mySettings->vehicleName);
283 myVehicleSizePanel =
new SizePanel(m34,
this, mySettings->vehicleSize);
288 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
294 myPersonShapeDetail->appendItem(
"'triangles'");
295 myPersonShapeDetail->appendItem(
"'boxes'");
296 myPersonShapeDetail->appendItem(
"'simple shapes'");
297 myPersonShapeDetail->appendItem(
"'raster images'");
298 myPersonShapeDetail->setNumVisible(4);
299 myPersonShapeDetail->setCurrentItem(settings->personQuality);
306 mySettings->personColorer.fill(*myPersonColorMode);
307 myPersonColorMode->setNumVisible(10);
315 myPersonNamePanel =
new NamePanel(m103,
this,
"Show person name", mySettings->personName);
320 myPersonSizePanel =
new SizePanel(m104,
this, mySettings->personSize);
325 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
331 myContainerShapeDetail->appendItem(
"'triangles'");
332 myContainerShapeDetail->appendItem(
"'boxes'");
333 myContainerShapeDetail->appendItem(
"'simple shapes'");
334 myContainerShapeDetail->appendItem(
"'raster images'");
335 myContainerShapeDetail->setNumVisible(4);
336 myContainerShapeDetail->setCurrentItem(settings->containerQuality);
343 mySettings->containerColorer.fill(*myContainerColorMode);
344 myContainerColorMode->setNumVisible(9);
352 myContainerNamePanel =
new NamePanel(m103,
this,
"Show container name", mySettings->containerName);
357 myContainerSizePanel =
new SizePanel(m104,
this, mySettings->containerSize);
362 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
367 mySettings->junctionColorer.fill(*myJunctionColorMode);
368 myJunctionColorMode->setNumVisible(4);
373 (BUTTON_DEFAULT | FRAME_RAISED | FRAME_THICK | LAYOUT_TOP | LAYOUT_LEFT), 0, 0, 0, 0, 20, 20, 4, 4);
377 myTLIndexPanel =
new NamePanel(m42,
this,
"Show link tls index", mySettings->drawLinkTLIndex);
378 myJunctionIndexPanel =
new NamePanel(m42,
this,
"Show link junction index", mySettings->drawLinkJunctionIndex);
380 myShowLane2Lane->setCheck(mySettings->showLane2Lane);
382 myJunctionNamePanel =
new NamePanel(m42,
this,
"Show junction name", mySettings->junctionName);
383 myInternalJunctionNamePanel =
new NamePanel(m42,
this,
"Show internal junction name", mySettings->internalJunctionName);
384 myInternalEdgeNamePanel =
new NamePanel(m42,
this,
"Show internal edge name", mySettings->internalEdgeName);
385 myCwaEdgeNamePanel =
new NamePanel(m42,
this,
"Show crossing and walkingarea name", mySettings->cwaEdgeName);
387 myDrawJunctionShape->setCheck(mySettings->drawJunctionShape);
389 myDrawCrossingsAndWalkingAreas->setCheck(mySettings->drawCrossingsAndWalkingareas);
394 myJunctionSizePanel =
new SizePanel(m43,
this, mySettings->junctionSize);
399 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
403 myAddNamePanel =
new NamePanel(m51,
this,
"Show object name", mySettings->addName);
404 myAddFullNamePanel =
new NamePanel(m51,
this,
"Show full name", mySettings->addFullName);
408 myAddSizePanel =
new SizePanel(m52,
this, mySettings->addSize);
418 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
424 mySettings->poiColorer.fill(*myPOIColorMode);
425 myPOIColorMode->setNumVisible(3);
432 myPOINamePanel =
new NamePanel(m61,
this,
"Show poi names", mySettings->poiName);
433 myPOITypePanel =
new NamePanel(m61,
this,
"Show poi types", mySettings->poiType);
437 myPOISizePanel =
new SizePanel(m62,
this, mySettings->poiSize);
443 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
449 mySettings->polyColorer.fill(*myPolyColorMode);
450 myPolyColorMode->setNumVisible(3);
457 myPolyNamePanel =
new NamePanel(m91,
this,
"Show polygon names", mySettings->polyName);
458 myPolyTypePanel =
new NamePanel(m91,
this,
"Show polygon types", mySettings->polyType);
461 myPolySizePanel =
new SizePanel(m91,
this, mySettings->polySize);
466 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
471 myShowSizeLegend->setCheck(mySettings->showSizeLegend);
472 new FXLabel(m72,
"");
477 FXScrollWindow* genScroll =
new FXScrollWindow(tabbook);
482 myDither->setCheck(mySettings->dither);
489 rebuildColorMatrices(
false);
559 FXString dataS = (
char*) data;
562 for (
int i = 0; i <
mySchemeName->getNumItems() - 1; ++i) {
648 std::vector<FXColorWell*>::const_iterator colEnd,
649 std::vector<FXRealSpinner*>::const_iterator threshIt,
650 std::vector<FXRealSpinner*>::const_iterator threshEnd,
651 std::vector<FXButton*>::const_iterator buttonIt,
654 while (colIt != colEnd) {
656 if (sender == *colIt) {
660 if (sender == *threshIt) {
661 const double val = (*threshIt)->getValue();
665 (*threshIt)->getRange(lo, hi);
666 (*threshIt)->setRange(lo, val);
670 if (threshIt != threshEnd) {
671 (*threshIt)->getRange(lo, hi);
672 (*threshIt)->setRange(val, hi);
677 if (sender == *colIt) {
681 if (sender == *buttonIt) {
684 }
else if (sender == *(buttonIt + 1)) {
701 std::vector<FXRealSpinner*>::const_iterator scaleEnd,
702 std::vector<FXRealSpinner*>::const_iterator threshIt,
703 std::vector<FXRealSpinner*>::const_iterator threshEnd,
704 std::vector<FXButton*>::const_iterator buttonIt,
707 while (scaleIt != scaleEnd) {
709 if (sender == *scaleIt) {
710 scheme.
setColor(pos, (*scaleIt)->getValue());
713 if (sender == *threshIt) {
714 const double val = (*threshIt)->getValue();
718 (*threshIt)->getRange(lo, hi);
719 (*threshIt)->setRange(lo, val);
723 if (threshIt != threshEnd) {
724 (*threshIt)->getRange(lo, hi);
725 (*threshIt)->setRange(val, hi);
730 if (sender == *scaleIt) {
731 scheme.
setColor(pos, (*scaleIt)->getValue());
734 if (sender == *buttonIt) {
735 scheme.
addColor((*scaleIt)->getValue(), (*threshIt)->getValue());
737 }
else if (sender == *(buttonIt + 1)) {
762 bool doRebuildColorMatrices =
false;
844 doRebuildColorMatrices =
true;
848 doRebuildColorMatrices =
true;
854 doRebuildColorMatrices =
true;
858 doRebuildColorMatrices =
true;
861 doRebuildColorMatrices =
true;
868 doRebuildColorMatrices =
true;
872 doRebuildColorMatrices =
true;
875 doRebuildColorMatrices =
true;
882 doRebuildColorMatrices =
true;
886 doRebuildColorMatrices =
true;
889 doRebuildColorMatrices =
true;
896 doRebuildColorMatrices =
true;
900 doRebuildColorMatrices =
true;
903 doRebuildColorMatrices =
true;
910 doRebuildColorMatrices =
true;
914 doRebuildColorMatrices =
true;
917 doRebuildColorMatrices =
true;
924 doRebuildColorMatrices =
true;
928 doRebuildColorMatrices =
true;
931 doRebuildColorMatrices =
true;
938 doRebuildColorMatrices =
true;
942 doRebuildColorMatrices =
true;
945 doRebuildColorMatrices =
true;
952 doRebuildColorMatrices =
true;
956 doRebuildColorMatrices =
true;
959 doRebuildColorMatrices =
true;
989 if (doRebuildColorMatrices) {
993 getApp()->forceRefresh();
1002 if (settingsName !=
"") {
1003 FXint index =
mySchemeName->appendItem(settingsName.c_str());
1024 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1065 std::string name =
"";
1066 while (name.length() == 0) {
1077 if (!dialog.execute()) {
1080 name = text->getText().text();
1081 for (
int i = 0; i < (int)name.length(); ++i) {
1082 if (name[i] !=
'_' && (name[i] <
'a' || name[i] >
'z') && (name[i] <
'A' || name[i] >
'Z') && (name[i] <
'0' || name[i] >
'9')) {
1090 tmpSettings.
name = name;
1104 sender->handle(
this,
1106 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1118 std::string name =
mySchemeName->getItem(index).text();
1129 sender->handle(
this,
1131 ? FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1168 FXMessageBox::error(
this, MBOX_OK,
"Storing failed!",
"%s", e.what());
1176 sender->handle(
this,
1179 FXSEL(SEL_COMMAND, ID_DISABLE) : FXSEL(SEL_COMMAND, ID_ENABLE),
1187 FXFileDialog opendialog(
this,
"Import view settings");
1189 opendialog.setSelectMode(SELECTFILE_ANY);
1190 opendialog.setPatternList(
"*.xml");
1194 if (opendialog.execute()) {
1204 FXFileDialog opendialog(
this,
"Load Decals");
1206 opendialog.setSelectMode(SELECTFILE_ANY);
1207 opendialog.setPatternList(
"*.xml");
1211 if (opendialog.execute()) {
1232 FXMessageBox::error(
myParent, MBOX_OK,
"Storing failed!",
"%s", e.what());
1242 sender->handle(
this, FXSEL(SEL_COMMAND, ID_ENABLE), ptr);
1252 const int numRows =
MAX2((
int)10, (
int)
myDecals->size() + 1);
1263 header->setHeight(getApp()->getNormalFont()->getFontHeight() + getApp()->getNormalFont()->getFontAscent());
1265 for (k = 0; k < cols; k++) {
1267 header->setItemSize(k, 60);
1269 header->setItemSize(0, 150);
1272 std::vector<GUISUMOAbstractView::Decal>::iterator j;
1286 for (k = 0; k < 7; k++) {
1294 std::vector<FXColorWell*>& colors,
1295 std::vector<FXRealSpinner*>& thresholds,
1296 std::vector<FXButton*>& buttons,
1297 FXCheckButton* interpolation,
1304 const bool fixed = scheme.
isFixed();
1305 std::vector<RGBColor>::const_iterator colIt = scheme.
getColors().begin();
1306 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1307 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1308 while (colIt != scheme.
getColors().end()) {
1311 new FXLabel(m, nameIt->c_str());
1317 threshDialer->setValue(*threshIt);
1318 thresholds.push_back(threshDialer);
1328 interpolation->disable();
1330 if (colors.size() > 1) {
1331 interpolation->enable();
1332 if (interpolation->getCheck() != FALSE) {
1333 thresholds.front()->enable();
1335 thresholds.front()->disable();
1338 interpolation->disable();
1339 thresholds.front()->disable();
1348 std::vector<FXRealSpinner*>& scales,
1349 std::vector<FXRealSpinner*>& thresholds,
1350 std::vector<FXButton*>& buttons,
1351 FXCheckButton* interpolation,
1358 const bool fixed = scheme.
isFixed();
1359 std::vector<double>::const_iterator scaleIt = scheme.
getColors().begin();
1360 std::vector<double>::const_iterator threshIt = scheme.
getThresholds().begin();
1361 std::vector<std::string>::const_iterator nameIt = scheme.
getNames().begin();
1362 while (scaleIt != scheme.
getColors().end()) {
1364 scaleDialer->setValue(*scaleIt);
1365 scales.push_back(scaleDialer);
1367 new FXLabel(m, nameIt->c_str());
1373 threshDialer->setValue(*threshIt);
1374 thresholds.push_back(threshDialer);
1384 interpolation->disable();
1386 if (scales.size() > 1) {
1387 interpolation->enable();
1388 if (interpolation->getCheck() != FALSE) {
1389 thresholds.front()->enable();
1391 thresholds.front()->disable();
1394 interpolation->disable();
1395 thresholds.front()->disable();
1412 for (
int i = 1; i <= 5; ++i) {
1484 std::string value = i->
item->getText().text();
1486 if (value.find_first_not_of(
" ") == std::string::npos) {
1492 if (row == static_cast<int>(
myDecals->size())) {
1505 }
else if (row > static_cast<int>(
myDecals->size())) {
1509 d = (*myDecals)[row];
1523 std::string msg =
"The value must be a float, is:" + value;
1524 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1531 std::string msg =
"The value must be a float, is:" + value;
1532 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1539 std::string msg =
"The value must be a float, is:" + value;
1540 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1547 std::string msg =
"The value must be a float, is:" + value;
1548 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1555 std::string msg =
"The value must be a float, is:" + value;
1556 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1563 std::string msg =
"The value must be a float, is:" + value;
1564 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1571 std::string msg =
"The value must be a bool, is:" + value;
1572 FXMessageBox::error(
this, MBOX_OK,
"Number format error",
"%s", msg.c_str());
1578 (*myDecals)[row] = d;
1598 for (
int i = 0; i <
mySchemeName->getNumItems(); ++i) {
1610 const std::string& title,
1613 myCheck->setCheck(settings.
show);
1614 myConstSizeCheck =
new FXCheckButton(parent,
"constant text size", target, MID_SIMPLE_VIEW_COLORCHANGE,
GUIDesignCheckButton);
1615 myConstSizeCheck->setCheck(settings.
constSize);
1619 mySizeDial->setRange(10, 1000);
1620 mySizeDial->setValue(settings.
size);
1630 mySizeDial->getValue(),
1632 myConstSizeCheck->getCheck() != FALSE);
1638 myCheck->setCheck(settings.
show);
1639 mySizeDial->setValue(settings.
size);
1641 myConstSizeCheck->setCheck(settings.
constSize);
1651 new FXLabel(parent,
"");
1655 myMinSizeDial->setValue(settings.
minSize);
1659 myExaggerateDial->setRange(0, 10000);
1667 myMinSizeDial->getValue(), myExaggerateDial->getValue(), myCheck->getCheck() != FALSE);
1674 myMinSizeDial->setValue(settings.
minSize);
1681 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"x", getX());
1682 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"y", getY());
1683 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"width", getWidth());
1684 getApp()->reg().writeIntEntry(
"VIEWSETTINGS",
"height", getHeight());
1690 const FXint minSize = 400;
1691 const FXint minTitlebarHeight = 20;
1692 setX(
MAX2(0,
MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"x", 150),
1693 getApp()->getRootWindow()->getWidth() - minSize)));
1694 setY(
MAX2(minTitlebarHeight,
1695 MIN2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"y", 150),
1696 getApp()->getRootWindow()->getHeight() - minSize)));
1697 setWidth(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"width", 700), minSize));
1698 setHeight(
MAX2(getApp()->reg().readIntEntry(
"VIEWSETTINGS",
"height", 500), minSize));
void rebuildColorMatrices(bool doCreate=false)
Rebuilds color changing dialogs after choosing another coloring scheme.
GUIVisualizationSizeSettings junctionSize
GUIDialog_EditViewport * getViewportEditor()
get the viewport and create it on first access
const std::vector< GUISUMOAbstractView::Decal > & getDecals() const
Returns the parsed decals.
GUIVisualizationTextSettings junctionName
bool updateColorRanges(FXObject *sender, std::vector< FXColorWell *>::const_iterator colIt, std::vector< FXColorWell *>::const_iterator colEnd, std::vector< FXRealSpinner *>::const_iterator threshIt, std::vector< FXRealSpinner *>::const_iterator threshEnd, std::vector< FXButton *>::const_iterator buttonIt, GUIColorScheme &scheme)
A decal (an image) that can be shown.
FXCheckButton * mySaveViewPort
FXVerticalFrame * myVehicleColorSettingFrame
For the save-decals - button.
long onUpdSaveSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to save the settings into the registry.
FXCheckButton * myLaneColorInterpolation
double altitude
The altitude of the image (net coordinates in z-direction, in m)
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
FXComboBox * myJunctionColorMode
void close()
Closes the device and removes it from the dictionary.
FXVerticalFrame * myDecalsFrame
GUICompleteSchemeStorage gSchemeStorage
bool showSizeLegend
Information whether the size legend shall be drawn.
FXCheckButton * myJunctionColorInterpolation
FXCheckButton * myShowBlinker
FXButton * myJunctionColorRainbow
#define GUIDesignViewSettingsMatrix5
GUIVisualizationTextSettings poiType
FXVerticalFrame * myLaneScaleSettingFrame
FXCheckButton * myShowBTRange
GUIVisualizationTextSettings streetName
double laneWidthExaggeration
The lane exaggeration (upscale thickness)
#define GUIDesignViewSettingsMatrix3
bool updateScaleRanges(FXObject *sender, std::vector< FXRealSpinner *>::const_iterator colIt, std::vector< FXRealSpinner *>::const_iterator colEnd, std::vector< FXRealSpinner *>::const_iterator threshIt, std::vector< FXRealSpinner *>::const_iterator threshEnd, std::vector< FXButton *>::const_iterator buttonIt, GUIScaleScheme &scheme)
bool showBlinker
Information whether vehicle blinkers shall be drawn.
GUIVisualizationTextSettings addName
FXCheckButton * myPolyColorInterpolation
FXComboBox * myVehicleColorMode
GUIVisualizationTextSettings personName
#define GUIDesignViewSettingsButton5
std::vector< FXButton * > myLaneButtons
SizePanel * myPOISizePanel
FXDEFMAP(GUIDialog_ViewSettings) GUIDialog_ViewSettingsMap[]
#define GUIDesignViewSettingsColorWell2
const std::vector< std::string > & getNames() const
Returns a list of stored settings names.
GUIVisualizationTextSettings poiName
static bool _2bool(const E *const data)
converts a 0-terminated char-type array into the boolean value described by it
FXCheckButton * myShowLinkRules
#define GUIDesignViewSettingsMFXTableJustify
GUIColorScheme & getLaneEdgeScheme()
Returns the current lane (edge) coloring schme.
bool showBTRange
Information whether the communication range shall be drawn.
#define GUIDesignButtonToolbar
little button with icon placed in navigation toolbar
double exaggeration
The size exaggeration (upscale)
void saveDecals(OutputDevice &dev) const
Writes the currently used decals into a file.
GUIColorer laneColorer
The lane colorer.
GUIColorer containerColorer
The container colorer.
Stores the information about how to visualize structures.
FXComboBox * myPOIColorMode
The dialog to change the view (gui) settings.
void setDelay(double delay)
Sets the delay of the parent application.
SizePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const GUIVisualizationSizeSettings &settings)
NamePanel * myPolyTypePanel
GUIColorer edgeColorer
The mesoscopic edge colorer.
static RGBColor getRGBColor(FXColor col)
converts FXColor to RGBColor
std::vector< FXButton * > myPolyButtons
void remove(GUIDialog_EditViewport *)
remove viewport
const std::vector< std::string > & getNames() const
#define GUIDesignViewSettingsVerticalFrame4
std::vector< GUISUMOAbstractView::Decal > * myDecals
The parent's decals.
NamePanel * myPOINamePanel
std::vector< FXButton * > myPOIButtons
bool showRails
Information whether rails shall be drawn.
void loadDecals(const std::string &file)
Loads decals from a file.
std::vector< FXButton * > myPersonButtons
std::string time2string(SUMOTime t)
std::vector< FXColorWell * > myJunctionColors
GUIVisualizationTextSettings vehicleName
FXComboBox * myVehicleShapeDetail
FXCheckButton * myShowSublanes
double centerX
The center of the image in x-direction (net coordinates, in m)
void loadWindowSize()
load window position and size from the registry
bool screenRelative
Whether this image should be skipped in 2D-views.
void loadSettings(const std::string &file)
Loads a scheme from a file.
#define GUIDesignViewSettingsVerticalFrame5
FXVerticalFrame * myPolyColorSettingFrame
bool allowsNegativeValues() const
FXCheckButton * mySaveBreakpoints
static void deleteChildren(FXWindow *w)
Deletes all children of the given window.
long onCmdSaveDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be saved to a file.
bool showLaneDirection
Whether to show direction indicators for lanes.
void writeXML(OutputDevice &dev)
write the settings to the given device
GUIVisualizationTextSettings cwaEdgeName
FXString gCurrentFolder
The folder used as last.
long onCmdSaveSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be saved into the registry.
bool laneShowBorders
Information whether lane borders shall be drawn.
bool netedit
Whether the settings are for Netedit.
long onCmdExportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be exported into a file.
SizePanel * myJunctionSizePanel
bool isInterpolated() const
std::vector< FXRealSpinner * > myLaneScaleThresholds
bool hasDecals() const
Returns whether any decals have been parsed.
#define GUIDesignViewSettingsTextField1
textFields
bool showLinkRules
Information whether link rules (colored bars) shall be drawn.
std::vector< FXRealSpinner * > myLaneThresholds
long onCmdEditTable(FXObject *, FXSelector, void *data)
Called if the decals-table was changed.
FXCheckButton * mySaveDelay
#define GUIDesignViewSettingsSpinDial1
static FXString getFilename2Write(FXWindow *parent, const FXString &header, const FXString &extension, FXIcon *icon, FXString ¤tFolder)
Returns the file name to write.
For the import-from-file - button.
std::vector< FXColorWell * > myPOIColors
double getGridHeight() const
get grid Height
bool dither
Information whether dithering shall be enabled.
double height
The height of the image (net coordinates in y-direction, in m)
FXVerticalFrame * myContainerColorSettingFrame
virtual void buildColorRainbow(GUIColorScheme &, int, GUIGlObjectType)
recalibrate color scheme according to the current value range
double getDelay() const
Returns the delay of the parent application.
#define GUIDesignMatrixViewSettings
FXMatrix used to pack values in Viewsettings.
long onCmdNameChange(FXObject *, FXSelector, void *)
Called if the name of the scheme was changed.
SizePanel * myPolySizePanel
double getDelay() const
Returns the parsed delay.
void setActive(int scheme)
double layer
The layer of the image.
std::vector< FXRealSpinner * > myPOIThresholds
std::vector< FXRealSpinner * > myPolyThresholds
FXRealSpinner * myGridYSizeDialer
#define GUIDesignViewSettingsVerticalFrame1
vertical frames
#define GUIDesignViewSettingsMatrix2
GUIVisualizationSizeSettings polySize
GUIColorer vehicleColorer
The vehicle colorer.
FXCheckButton * myShowLaneDirection
double roll
The roll of the image to the ground plane (in degrees)
#define GUIDesignViewSettingsButton2
GUIVisualizationTextSettings edgeName
std::vector< FXButton * > myContainerButtons
FXCheckButton * myVehicleColorInterpolation
GUIVisualizationSizeSettings addSize
double getGridWidth() const
get grid width
GUIColorer poiColorer
The POI colorer.
int getLaneEdgeMode() const
Returns the number of the active lane (edge) coloring schme.
#define GUIDesignViewSettingsVerticalFrame2
void setNumberCellParams(int pos, double min, double max, double steps1, double steps2, double steps3, const std::string &format)
NamePanel * myInternalEdgeNamePanel
FXCheckButton * myShowMinGap
void save(OutputDevice &dev) const
Writes the settings into an output device.
NamePanel * myEdgeNamePanel
void setCellType(int pos, CellType t)
FXCheckButton * myShowGrid
std::vector< FXRealSpinner * > myPersonThresholds
int addColor(const T &color, const double threshold, const std::string &name="")
std::string name
The name of this setting.
double gridXSize
Information about the grid spacings.
#define GUIDesignHorizontalSeparator
#define GUIDesignViewSettingsButton3
void setCurrentScheme(const std::string &)
Sets the named scheme as the current.
FXCheckButton * myShowLane2Lane
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
void rebuildList()
Rebuilds the decals table.
#define GUIDesignViewSettingsHorizontalFrame2
void update(const GUIVisualizationSizeSettings &settings)
double minSize
The minimum size to draw this object.
FXCheckButton * myDrawCrossingsAndWalkingAreas
void show()
show view settings dialog
GUIVisualizationSettings * mySettings
The current settings.
GUIVisualizationTextSettings internalEdgeName
#define GUIDesignViewSettingsLabel2
NamePanel * myStreetNamePanel
#define GUIDesignCheckButton
For the load-decals - button.
bool drawMinGap
Information whether the minimum gap shall be drawn.
NamePanel * myInternalJunctionNamePanel
std::vector< FXColorWell * > myVehicleColors
#define GUIDesignViewSettingsMatrix4
std::vector< FXRealSpinner * > myLaneScales
double rot
The rotation of the image in the ground plane (in degrees)
void remove(const std::string &name)
Removes the setting with the given name.
#define GUIDesignViewSettingsMatrix1
Matrix.
GUIVisualizationTextSettings polyType
bool showSublanes
Whether to show sublane boundaries.
void saveWindowSize()
save window position and size to the registry
#define GUIDesignViewSettingsColorWell1
Color wells.
FXCheckButton * myShowSizeLegend
GUIVisualizationSettings & get(const std::string &name)
Returns the named scheme.
Informs the dialog about switching to another scheme.
FXCheckButton * mySaveDecals
FXVerticalFrame * myLaneColorSettingFrame
std::vector< FXRealSpinner * > myVehicleThresholds
FXComboBox & getColoringSchemesCombo()
get coloring schemes combo
FXMatrix * rebuildColorMatrix(FXVerticalFrame *frame, std::vector< FXColorWell *> &colors, std::vector< FXRealSpinner *> &thresholds, std::vector< FXButton *> &buttons, FXCheckButton *interpolation, GUIColorScheme &scheme)
Rebuilds manipulators for the current coloring scheme.
bool initialised
Whether this image was initialised (inserted as a texture)
GUIVisualizationTextSettings drawLinkTLIndex
GUIColorer polyColorer
The polygon colorer.
#define GUIDesignViewSettingsColorWell
ColorWell.
GUIColorer personColorer
The person colorer.
void setThreshold(const int pos, const double threshold)
GUIVisualizationTextSettings internalJunctionName
int getNumInitialSettings() const
Returns the number of initial settings.
#define GUIDesignComboBoxStatic
Combo box static (not editable)
double centerY
The center of the image in y-direction (net coordinates, in m)
GUIColorer junctionColorer
The junction colorer.
#define GUIDesignViewSettingsButton4
std::string filename
The path to the file the image is located at.
long onUpdDeleteSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to delete settings.
FXVerticalFrame * myJunctionColorSettingFrame
FXCheckButton * myLaneScaleInterpolation
FXCheckButton * myShowBikeMarkings
double laneMinSize
The minimum visual lane width for drawing.
GUIScaler edgeScaler
The mesoscopic edge scaler.
FXCheckButton * myShowLaneBorders
SizePanel * myAddSizePanel
NamePanel * myAddNamePanel
FXComboBox * myPolyColorMode
GUIScaleScheme & getLaneEdgeScaleScheme()
Returns the current lane (edge) scaling schme.
std::vector< FXColorWell * > myPersonColors
int containerQuality
The quality of container drawing.
long onCmdCancel(FXObject *, FXSelector, void *)
Called if the Cancel-button was pressed.
RGBColor backgroundColor
The background color to use.
std::vector< FXRealSpinner * > myJunctionThresholds
std::vector< FXButton * > myLaneScaleButtons
std::string addSettings(GUISUMOAbstractView *view=0) const
Adds the parsed settings to the global list of settings.
long onCmdOk(FXObject *, FXSelector, void *)
Called if the OK-button was pressed.
NamePanel * myCwaEdgeNamePanel
double width
The width of the image (net coordinates in x-direction, in m)
#define GUIDesignViewSettingsDialog
void setColor(const int pos, const T &color)
virtual bool setColorScheme(const std::string &)
set color scheme
void unlock()
release mutex lock
FXMatrix * rebuildScaleMatrix(FXVerticalFrame *frame, std::vector< FXRealSpinner *> &scales, std::vector< FXRealSpinner *> &thresholds, std::vector< FXButton *> &buttons, FXCheckButton *interpolation, GUIScaleScheme &scheme)
Rebuilds manipulators for the current scaling scheme.
FXComboBox * myContainerColorMode
GUIVisualizationSizeSettings poiSize
~GUIDialog_ViewSettings()
Destructor.
NamePanel * myTLIndexPanel
#define GUIDesignViewSettingsHorizontalFrame1
Horizontal frames.
NamePanel * myVehicleNamePanel
NamePanel * myContainerNamePanel
MFXAddEditTypedTable * myDecalsTable
virtual const std::vector< SUMOTime > retrieveBreakpoints() const
retrieve breakpoints if provided by the application
FXCheckButton * myDrawJunctionShape
bool showLinkDecals
Information whether link textures (arrows) shall be drawn.
#define GUIDesignViewSettingsTabBook1
Tab books.
#define GUIDesignViewSettingsComboBox1
Combo boxs.
FXCheckButton * myPOIColorInterpolation
NamePanel(FXMatrix *parent, GUIDialog_ViewSettings *target, const std::string &title, const GUIVisualizationTextSettings &settings)
GUIVisualizationSizeSettings containerSize
FXComboBox * myLaneEdgeScaleMode
... lane scaler
void applyViewport(GUISUMOAbstractView *view) const
Sets the viewport which has been parsed.
void removeColor(const int pos)
static OutputDevice & getDevice(const std::string &name)
Returns the described OutputDevice.
FXButton * myLaneColorRainbow
bool contains(const std::string &name) const
Returns the information whether a setting with the given name is stored.
GUIVisualizationTextSettings getSettings()
std::vector< FXColorWell * > myPolyColors
FXComboBox * myPersonShapeDetail
GUIVisualizationTextSettings addFullName
NamePanel * myJunctionNamePanel
const std::vector< T > & getColors() const
void writeSettings(FXApp *app)
Writes the current scheme into the registry.
#define GUIDesignViewSettingsHorizontalFrame3
std::vector< FXRealSpinner * > myContainerThresholds
FXComboBox * myLaneEdgeColorMode
... lane colorer
void setCurrent(GUIVisualizationSettings *settings)
Sets current settings (called if reopened)
FXCheckButton * myHideMacroConnectors
double centerZ
The center of the image in z-direction (net coordinates, in m)
static double _2double(const E *const data)
converts a char-type array into the double value described by it
#define GUIDesignViewSettingsTabItemBook1
FXCheckButton * myShowRails
GUIVisualizationSizeSettings personSize
int personQuality
The quality of person drawing.
std::string getCurrentScheme() const
Returns the name of the currently chosen scheme.
bool showGrid
Information whether a grid shall be shown.
bool drawCrossingsAndWalkingareas
whether crosings and walkingareas shall be drawn
long onUpdExportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to export settings into a file.
static FXColor getFXColor(const RGBColor &col)
converts FXColor to RGBColor
double tilt
The tilt of the image to the ground plane (in degrees)
Informs the dialog about a value's change.
NamePanel * myPOITypePanel
long onCmdColorChange(FXObject *, FXSelector, void *)
Called if something (color, width, etc.) has been changed.
#define GUIDesignViewSettingsVerticalFrame3
bool showLane2Lane
Information whether lane-to-lane arrows shall be drawn.
SizePanel * myPersonSizePanel
Static storage of an output device and its base (abstract) implementation.
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
An XML-handler for visualisation schemes.
NamePanel * myJunctionIndexPanel
FXCheckButton * myPersonColorInterpolation
#define GUIDesignViewSettingsVerticalFrame6
#define GUIDesignViewSettingsButton1
Buttons.
For the save-to-db - button.
#define GUIDesignSpinDial
GUIVisualizationSizeSettings vehicleSize
SizePanel * myVehicleSizePanel
bool drawJunctionShape
whether the shape of the junction should be drawn
long onCmdLoadDecals(FXObject *, FXSelector, void *data)
Called if the decals shall be loaded from a file.
Cancel-button was pushed.
void update(const GUIVisualizationTextSettings &settings)
FXColorWell * myBackgroundColor
int getLaneEdgeScaleMode() const
Returns the number of the active lane (edge) scaling schme.
GUIVisualizationSizeSettings getSettings()
int vehicleQuality
The quality of vehicle drawing.
FXVerticalFrame * myPOIColorSettingFrame
const std::vector< double > & getThresholds() const
static bool UseMesoSim
this should be set at the same time as MSGlobals::gUseMesoSim
MFXMutex * myDecalsLock
Lock used when changing the decals.
NamePanel * myAddFullNamePanel
FXRealSpinner * myLaneWidthUpscaleDialer
SizePanel * myContainerSizePanel
FXCheckButton * myContainerColorInterpolation
GUIScaler laneScaler
The lane scaler.
#define GUIDesignViewSettingsSpinDial2
bool spreadSuperposed
Whether to improve visualisation of superposed (rail) edges.
FXComboBox * myContainerShapeDetail
long onCmdDeleteSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be deleted.
GUISUMOAbstractView * myParent
The parent view (which settings are changed)
FXVerticalFrame * myPersonColorSettingFrame
NamePanel * myPolyNamePanel
std::vector< FXColorWell * > myContainerColors
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon
FXRealSpinner * myGridXSizeDialer
std::vector< FXButton * > myJunctionButtons
GUIVisualizationTextSettings drawLinkJunctionIndex
#define GUIDesignViewSettingsMFXTable
MFX Add/Edit Typed Table.
NamePanel * myPersonNamePanel
GUIVisualizationSettings myBackup
A backup of the settings (used if the "Cancel" button is pressed)
std::vector< FXColorWell * > myLaneColors
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
bool showBikeMarkings
Information whether bicycle lane marking shall be drawn.
FXComboBox * mySchemeName
std::vector< FXButton * > myVehicleButtons
void setInterpolated(const bool interpolate, double interpolationStart=0.f)
long onCmdImportSetting(FXObject *, FXSelector, void *data)
Called if the settings shall be read from a file.
void add(const GUIVisualizationSettings &scheme)
Adds a visualization scheme.
FXComboBox * myPersonColorMode
long onUpdImportSetting(FXObject *, FXSelector, void *data)
Called when updating the button that allows to read settings from a file.
GUIVisualizationTextSettings polyName
GUIVisualizationTextSettings containerName
FXCheckButton * mySpreadSuperposed
For the export-to-file - button.
#define GUIDesignViewSettingsLabel1
Label.
FXRealSpinner * myLaneMinWidthDialer
#define GUIDesignViewSettingsMainDialog
FXCheckButton * myShowLaneDecals