70 myOptionsContainer(optionsContainer),
71 myCopyOfOptionsContainer(optionsContainer.clone()),
72 myOriginalOptionsContainer(originalOptionsContainer) {
74 auto staticTooltipMenu = dialog->getApplicationWindow()->getStaticTooltipMenu();
78 (std::string(
"\t") +
TL(
"Toggle Menu Tooltips") + std::string(
"\t") +
TL(
"Toggles whether tooltips in the menu shall be shown.")).c_str(),
80 auto saveFile =
new MFXButtonTooltip(buttonsFrame, staticTooltipMenu,
TL(
"Save options"),
82 saveFile->setTipText(
TL(
"Save configuration file"));
83 auto loadFile =
new MFXButtonTooltip(buttonsFrame, staticTooltipMenu,
TL(
"Load options"),
85 loadFile->setTipText(
TL(
"Load configuration file"));
86 auto resetDefault =
new MFXButtonTooltip(buttonsFrame, staticTooltipMenu,
TL(
"Default options"),
88 resetDefault->setTipText(
TL(
"Reset all options to default"));
90 new FXSeparator(
this);
102 myRootItem = myTopicsTreeList->appendItem(
nullptr, titleName.c_str());
103 myRootItem->setExpanded(TRUE);
105 FXScrollWindow* scrollTabEntries =
new FXScrollWindow(groupBoxOptions->
getCollapsableFrame(), LAYOUT_FILL_X | LAYOUT_FILL_Y);
109 for (
const auto& topic : myOptionsContainer.getSubTopics()) {
111 if (myIgnoredTopics.count(topic) == 0) {
113 myTreeItemTopics[myTopicsTreeList->appendItem(myRootItem, topic.c_str())] = topic;
115 const bool requireSaveNetwork = (topic ==
"Processing");
117 const std::vector<std::string> entries = myOptionsContainer.getSubTopicsEntries(topic);
118 for (
const auto& entry : entries) {
120 if (myIgnoredEntries.count(entry) == 0) {
122 const std::string type = myOptionsContainer.getTypeName(entry);
124 const std::string description = myOptionsContainer.getDescription(entry);
126 const std::string defaultValue = myOptionsContainer.getValueString(entry);
128 const bool editable = myOptionsContainer.isEditable(entry);
131 myOptionRowEntries.push_back(
new GNEOptionsEditorRow::OptionString(
this, myEntriesFrame, topic, entry, description, defaultValue, editable, requireSaveNetwork));
132 }
else if (type ==
"TIME") {
133 myOptionRowEntries.push_back(
new GNEOptionsEditorRow::OptionTime(
this, myEntriesFrame, topic, entry, description, defaultValue, editable, requireSaveNetwork));
134 }
else if ((type ==
"FILE") || (type ==
"NETWORK") || (type ==
"ADDITIONAL") || (type ==
"ROUTE") || (type ==
"DATA")) {
136 }
else if (type ==
"BOOL") {
137 myOptionRowEntries.push_back(
new GNEOptionsEditorRow::OptionBool(
this, myEntriesFrame, topic, entry, description, defaultValue, editable, requireSaveNetwork));
138 }
else if (type ==
"INT") {
139 myOptionRowEntries.push_back(
new GNEOptionsEditorRow::OptionInt(
this, myEntriesFrame, topic, entry, description, defaultValue, editable, requireSaveNetwork));
140 }
else if (type ==
"FLOAT") {
141 myOptionRowEntries.push_back(
new GNEOptionsEditorRow::OptionFloat(
this, myEntriesFrame, topic, entry, description, defaultValue, editable, requireSaveNetwork));
142 }
else if (type ==
"INT[]") {
144 }
else if (type ==
"STR[]") {
155 myDescriptionSearchCheckButton->setToolTipText(
TL(
"Include description in search"));
158 for (
const auto& entry : myOptionRowEntries) {
159 entry->adjustNameSize();
162 myShowToolTipsMenu->setChecked(getApp()->reg().readIntEntry(
"gui",
"menuToolTips", 0) != 1);
MFXStaticToolTip * getStaticTooltipMenu() const
get static toolTip for menus
FXTextFieldIcon (based on FXTextFieldIcon)