79 FXTabBook* tabbook =
new FXTabBook(contentFrame,
nullptr, 0,
GUIDesignTabBook);
83 if (topic !=
"Configuration") {
84 new FXTabItem(tabbook, topic.c_str(),
nullptr, TAB_LEFT_NORMAL);
85 FXScrollWindow* scrollTab =
new FXScrollWindow(tabbook, LAYOUT_FILL_X | LAYOUT_FILL_Y);
86 FXVerticalFrame* tabContent =
new FXVerticalFrame(scrollTab, FRAME_THICK | FRAME_RAISED | LAYOUT_FILL_X | LAYOUT_FILL_Y);
88 for (
const auto& entry : entries) {
89 if (entry !=
"geometry.remove" && entry !=
"edges.join" && entry !=
"geometry.split" && entry !=
"ramps.guess" && entry !=
"ramps.set") {
93 }
else if (type ==
"FILE") {
95 }
else if (type ==
"BOOL") {
97 }
else if (type ==
"INT") {
99 }
else if (type ==
"FLOAT") {
101 }
else if (type ==
"INT[]") {
103 }
else if (type ==
"STR[]") {
122 FXHorizontalFrame(parent, LAYOUT_FILL_X),
125 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
126 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
135 oc.
set(myName, myTextField->getText().text());
141 FXHorizontalFrame(parent, LAYOUT_FILL_X),
144 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
145 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
154 oc.
set(myName, myTextField->getText().text());
160 FXHorizontalFrame(parent, LAYOUT_FILL_X),
163 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
173 oc.
set(myName, myCheck->getCheck() ?
"true" :
"false");
175 if ((myName ==
"gui-testing-debug") && oc.
isSet(
"gui-testing-debug")) {
178 if ((myName ==
"gui-testing-debug-gl") && oc.
isSet(
"gui-testing-debug-gl")) {
186 FXHorizontalFrame(parent, LAYOUT_FILL_X),
189 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
190 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_INTEGER | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
199 oc.
set(myName, myTextField->getText().text());
205 FXHorizontalFrame(parent, LAYOUT_FILL_X),
208 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
209 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
219 for (
const auto& intValue : intVector) {
224 oc.
set(myName, myTextField->getText().text());
225 myTextField->setTextColor(FXRGB(0, 0, 0));
227 myTextField->setTextColor(FXRGB(255, 0, 0));
234 FXHorizontalFrame(parent, LAYOUT_FILL_X),
237 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
238 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_REAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
247 oc.
set(myName, myTextField->getText().text());
253 FXHorizontalFrame(parent, LAYOUT_FILL_X),
256 new FXLabel(
this, (name +
"\t\t" + oc.
getDescription(name)).c_str());
257 myTextField =
new FXTextField(
this, 100,
this,
MID_GNE_SET_ATTRIBUTE, TEXTFIELD_NORMAL | LAYOUT_RIGHT, 0, 0, 0, 0, 4, 2, 0, 2);
267 oc.
set(myName, myTextField->getText().text());
268 myTextField->setTextColor(FXRGB(0, 0, 0));
270 myTextField->setTextColor(FXRGB(255, 0, 0));
@ MID_GNE_SET_ATTRIBUTE
attribute edited
#define GUIDesignTabBook
desgin for TabBooks
#define GUIDesignContentsFrame
design for the main content frame of every frame/dialog
#define GUIDesignDialogBox
#define GUIDesignButtonOK
#define GUIDesignStatusBar
design used in status bar
FXDEFMAP(GUIDialog_Options::InputString) InputStringMap[]
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
~GUIDialog_Options()
Destructor.
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
A storage for options typed value containers)
bool isSet(const std::string &name, bool failOnNonExistant=true) const
Returns the information whether the named option is set.
double getFloat(const std::string &name) const
Returns the double-value of the named option (only for Option_Float)
int getInt(const std::string &name) const
Returns the int-value of the named option (only for Option_Integer)
const std::vector< std::string > & getSubTopics() const
return the list of subtopics
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)
std::string getTypeName(const std::string name)
return the type name for the given option
bool set(const std::string &name, const std::string &value, const bool append=false)
Sets the given value for the named option.
bool getBool(const std::string &name) const
Returns the boolean-value of the named option (only for Option_Bool)
const StringVector & getStringVector(const std::string &name) const
Returns the list of string-value of the named option (only for Option_StringVector)
const std::string & getDescription(const std::string &name) const
Returns the option description.
void resetWritable()
Resets all options to be writeable.
static OptionsCont & getOptions()
Retrieves the options.
std::vector< std::string > getSubTopicsEntries(const std::string &subtopic) const
return the list of entries for the given subtopic
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 int toInt(const std::string &sData)
converts a string into the integer value described by it by calling the char-type converter,...