41#define MINNAMEWIDTH 200
70 const
std::
string& name, const
std::
string& description, const
std::
string& defaultValue) :
72 myGUIDialogOptions(GUIDialogOptions),
75 myDescription(description),
76 myDefaultValue(defaultValue) {
80 myNameLabel->setTipText(description.c_str());
117 if (getValue() != myDefaultValue) {
118 myResetButton->enable();
120 myResetButton->disable();
130 const std::string& topic,
const std::string& name,
const std::string& description,
const std::string& defaultValue) :
131 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
140 myStringTextField->setText(myGUIDialogOptions->myOptionsContainer.getString(myName).c_str());
146 myStringTextField->setText(myGUIDialogOptions->myOriginalOptionsContainer.getString(myName).c_str());
152 myGUIDialogOptions->myOptionsContainer.resetWritable();
153 myGUIDialogOptions->myOptionsContainer.set(myName, myStringTextField->getText().text());
154 myGUIDialogOptions->myOptionsModified =
true;
161 myStringTextField->setText(myDefaultValue.c_str());
168 return myStringTextField->getText().text();
173 const std::string& topic,
const std::string& name,
const std::string& description,
const std::string& defaultValue) :
174 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
182 myStringVectorTextField->setText(
toString(myGUIDialogOptions->myOptionsContainer.getStringVector(myName)).c_str());
188 myStringVectorTextField->setText(
toString(myGUIDialogOptions->myOriginalOptionsContainer.getStringVector(myName)).c_str());
194 myGUIDialogOptions->myOptionsContainer.resetWritable();
195 myGUIDialogOptions->myOptionsContainer.set(myName, myStringVectorTextField->getText().text());
196 myGUIDialogOptions->myOptionsModified =
true;
203 myStringVectorTextField->setText(myDefaultValue.c_str());
210 return myStringVectorTextField->getText().text();
218 const std::string& topic,
const std::string& name,
const std::string& description,
const std::string& defaultValue) :
219 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
227 if (myGUIDialogOptions->myOptionsContainer.getBool(myName)) {
228 myCheckButton->setCheck(TRUE);
229 myCheckButton->setText(
TL(
"true"));
231 myCheckButton->setCheck(FALSE);
232 myCheckButton->setText(
TL(
"false"));
239 if (myGUIDialogOptions->myOriginalOptionsContainer.getBool(myName)) {
240 myCheckButton->setCheck(TRUE);
241 myCheckButton->setText(
TL(
"true"));
243 myCheckButton->setCheck(FALSE);
244 myCheckButton->setText(
TL(
"false"));
251 myGUIDialogOptions->myOptionsContainer.resetWritable();
252 if (myCheckButton->getCheck()) {
253 myGUIDialogOptions->myOptionsContainer.set(myName,
"true");
254 myCheckButton->setText(
TL(
"true"));
256 myGUIDialogOptions->myOptionsContainer.set(myName,
"false");
257 myCheckButton->setText(
TL(
"false"));
259 myGUIDialogOptions->myOptionsModified =
true;
261 if ((myName ==
"gui-testing-debug") && myGUIDialogOptions->myOptionsContainer.isSet(
"gui-testing-debug")) {
264 if ((myName ==
"gui-testing-debug-gl") && myGUIDialogOptions->myOptionsContainer.isSet(
"gui-testing-debug-gl")) {
274 myCheckButton->setCheck(TRUE);
275 myCheckButton->setText(
TL(
"true"));
277 myCheckButton->setCheck(FALSE);
278 myCheckButton->setText(
TL(
"false"));
286 return myCheckButton->getCheck() ?
"true" :
"false";
294 const std::string& topic,
const std::string& name,
const std::string& description,
const std::string& defaultValue) :
295 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
303 myIntTextField->setText(
toString(myGUIDialogOptions->myOptionsContainer.getInt(myName)).c_str());
309 myIntTextField->setText(
toString(myGUIDialogOptions->myOriginalOptionsContainer.getInt(myName)).c_str());
315 if (myIntTextField->getText().empty()) {
316 myIntTextField->setText(myDefaultValue.c_str());
318 myGUIDialogOptions->myOptionsContainer.resetWritable();
319 myGUIDialogOptions->myOptionsContainer.set(myName, myIntTextField->getText().text());
320 myGUIDialogOptions->myOptionsModified =
true;
328 myIntTextField->setText(myDefaultValue.c_str());
335 return myIntTextField->getText().text();
343 const std::string& topic,
const std::string& name,
const std::string& description,
const std::string& defaultValue) :
344 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
353 myIntVectorTextField->setText(
toString(myGUIDialogOptions->myOptionsContainer.getIntVector(myName)).c_str());
359 myIntVectorTextField->setText(
toString(myGUIDialogOptions->myOriginalOptionsContainer.getIntVector(myName)).c_str());
368 for (
const auto& intValue : intVector) {
371 myGUIDialogOptions->myOptionsContainer.resetWritable();
372 myGUIDialogOptions->myOptionsContainer.set(myName, myIntVectorTextField->getText().text());
373 myIntVectorTextField->setTextColor(FXRGB(0, 0, 0));
374 myGUIDialogOptions->myOptionsModified =
true;
376 myIntVectorTextField->setTextColor(FXRGB(255, 0, 0));
384 myIntVectorTextField->setText(myDefaultValue.c_str());
391 return myIntVectorTextField->getText().text();
399 const std::string& name,
const std::string& description,
const std::string& defaultValue) :
400 InputOption(GUIDialogOptions, parent, topic, name, description, parseFloat(defaultValue)) {
409 myFloatTextField->setText(
toString(myGUIDialogOptions->myOptionsContainer.getFloat(myName)).c_str());
415 myFloatTextField->setText(
toString(myGUIDialogOptions->myOriginalOptionsContainer.getFloat(myName)).c_str());
422 if (myFloatTextField->getText().empty()) {
423 myFloatTextField->setText(myDefaultValue.c_str());
425 myGUIDialogOptions->myOptionsContainer.resetWritable();
426 myGUIDialogOptions->myOptionsContainer.set(myName, myFloatTextField->getText().text());
427 myGUIDialogOptions->myOptionsModified =
true;
435 myFloatTextField->setText(myDefaultValue.c_str());
442 return myFloatTextField->getText().text();
460 const std::string& name,
const std::string& description,
const std::string& defaultValue) :
461 InputOption(GUIDialogOptions, parent, topic, name, description, parseTime(defaultValue)) {
470 myTimeTextField->setText(
toString(myGUIDialogOptions->myOptionsContainer.getString(myName)).c_str());
476 myTimeTextField->setText(
toString(myGUIDialogOptions->myOriginalOptionsContainer.getString(myName)).c_str());
483 if (myTimeTextField->getText().empty()) {
484 myTimeTextField->setText(myDefaultValue.c_str());
486 myGUIDialogOptions->myOptionsContainer.resetWritable();
487 myGUIDialogOptions->myOptionsContainer.set(myName, myTimeTextField->getText().text());
488 myGUIDialogOptions->myOptionsModified =
true;
496 myTimeTextField->setText(myDefaultValue.c_str());
503 return myTimeTextField->getText().text();
521 const std::string& name,
const std::string& description,
const std::string& defaultValue) :
522 InputOption(GUIDialogOptions, parent, topic, name, description, defaultValue) {
532 myFilenameTextField->setText(myGUIDialogOptions->myOptionsContainer.getString(myName).c_str());
538 myFilenameTextField->setText(myGUIDialogOptions->myOriginalOptionsContainer.getString(myName).c_str());
547 if (file.size() > 0) {
548 myFilenameTextField->setText(file.c_str(), TRUE);
557 myGUIDialogOptions->myOptionsContainer.resetWritable();
558 myGUIDialogOptions->myOptionsContainer.set(myName, myFilenameTextField->getText().text());
559 myFilenameTextField->setTextColor(FXRGB(0, 0, 0));
560 myGUIDialogOptions->myOptionsModified =
true;
562 myFilenameTextField->setTextColor(FXRGB(255, 0, 0));
570 myFilenameTextField->setText(myDefaultValue.c_str());
580 return myFilenameTextField->getText().text();
FXDEFMAP(GNEOptionsDialogElements::InputOption) InputOptionMap[]
@ MID_GNE_SET_ATTRIBUTE
attribute edited
@ MID_GNE_SET_ATTRIBUTE_DIALOG
attribute edited trough dialog
@ MID_GNE_RESET
reset element
#define GUIDesignButtonIcon
button only with icon
#define GUIDesignTextField
#define GUIDesignAuxiliarHorizontalFrame
design for auxiliar (Without borders) horizontal frame used to pack another frames
#define GUIDesignTextFieldNCol
Num of column of text field.
#define GUIDesignCheckButton
checkButton placed in left position
#define GUIDesignTextFieldRestricted(type)
text field extended over Frame with thick frame (int)
#define GUIDesignLabelThickedFixed(width)
label thicked, icon before text, text centered and custom width
SUMOTime string2time(const std::string &r)
convert string to SUMOTime
std::string time2string(SUMOTime t, bool humanReadable)
convert SUMOTime to string (independently of global format setting)
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
OptionsCont & myOptionsContainer
reference to edited Option container
static FXButton * buildFXButton(FXComposite *p, const std::string &text, const std::string &tip, const std::string &help, FXIcon *ic, FXObject *tgt, FXSelector sel, FXuint opts=BUTTON_NORMAL, FXint x=0, FXint y=0, FXint w=0, FXint h=0, FXint pl=DEFAULT_PAD, FXint pr=DEFAULT_PAD, FXint pt=DEFAULT_PAD, FXint pb=DEFAULT_PAD)
build button
static FXIcon * getIcon(const GUIIcon which)
returns a icon previously defined in the enum GUIIcon
static void enableDebugGLMessages(bool enable)
enable/disable gl-debug messages
static void enableDebugMessages(bool enable)
enable/disable debug messages
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
const IntVector & getIntVector(const std::string &name) const
Returns the list of integer-value of the named option (only for Option_IntVector)
std::string getString(const std::string &name) const
Returns the string-value of the named option (only for Option_String)
static bool isValidFilename(const std::string &value)
whether the given string is a valid attribute for a filename (for example, a name)
std::vector< std::string > getVector()
return vector of strings
static std::string to_lower_case(const std::string &str)
Transfers the content to lower case.
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter
static int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...
static bool toBool(const std::string &sData)
converts a string into the bool value described by it by calling the char-type converter
static std::string openXMLFileDialog(FXWindow *window, bool save, bool multi)
open xml file dialog