56 FXMainWindow(a,
"SUMO-gui main window", nullptr, nullptr, DECOR_ALL, 20, 20, 600, 400),
57 myAmFullScreen(false),
59 myGLVisual(new FXGLVisual(a, VISUAL_DOUBLEBUFFER)),
61 myListInternal(false),
63 myListTeleporting(false) {
66 getApp()->getNormalFont()->getFontDesc(fdesc);
67 fdesc.weight = FXFont::Bold;
70 myTopDock =
new FXDockSite(
this, LAYOUT_SIDE_TOP | LAYOUT_FILL_X);
71 myBottomDock =
new FXDockSite(
this, LAYOUT_SIDE_BOTTOM | LAYOUT_FILL_X);
72 myLeftDock =
new FXDockSite(
this, LAYOUT_SIDE_LEFT | LAYOUT_FILL_Y);
73 myRightDock =
new FXDockSite(
this, LAYOUT_SIDE_RIGHT | LAYOUT_FILL_Y);
124 std::vector<std::string>
126 std::vector<std::string> ret;
128 ret.push_back(window->getTitle().text());
137 if (std::string(window->getTitle().text()) ==
id) {
187 throw ProcessError(
"A GUIMainWindow instance was not yet constructed.");
203 int windowWidth = getApp()->reg().readIntEntry(
"SETTINGS",
"width", 600);
204 int windowHeight = getApp()->reg().readIntEntry(
"SETTINGS",
"height", 400);
206 if (oc.
isSet(
"window-size")) {
207 std::vector<std::string> windowSize = oc.
getStringVector(
"window-size");
208 if (windowSize.size() != 2) {
209 WRITE_ERROR(
"option window-size requires INT,INT");
219 if (oc.
isSet(
"window-size") || getApp()->reg().readIntEntry(
"SETTINGS",
"maximized", 0) == 0 || oc.
isSet(
"window-pos")) {
221 int x =
MAX2(0,
MIN2(getApp()->reg().readIntEntry(
"SETTINGS",
"x", 150), getApp()->getRootWindow()->getWidth() - windowWidth));
222 int y =
MAX2(50,
MIN2(getApp()->reg().readIntEntry(
"SETTINGS",
"y", 150), getApp()->getRootWindow()->getHeight() - windowHeight));
223 if (oc.
isSet(
"window-pos")) {
225 if (windowPos.size() != 2) {
237 resize(windowWidth, windowHeight);
244 getApp()->reg().writeIntEntry(
"SETTINGS",
"x", getX());
245 getApp()->reg().writeIntEntry(
"SETTINGS",
"y", getY());
246 getApp()->reg().writeIntEntry(
"SETTINGS",
"width", getWidth());
247 getApp()->reg().writeIntEntry(
"SETTINGS",
"height", getHeight());