Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/utils/gui/div/GUIPersistentWindowPos.h
169684 views
1
/****************************************************************************/
2
// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3
// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4
// This program and the accompanying materials are made available under the
5
// terms of the Eclipse Public License 2.0 which is available at
6
// https://www.eclipse.org/legal/epl-2.0/
7
// This Source Code may also be made available under the following Secondary
8
// Licenses when the conditions for such availability set forth in the Eclipse
9
// Public License 2.0 are satisfied: GNU General Public License, version 2
10
// or later which is available at
11
// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13
/****************************************************************************/
14
/// @file GUIPersistentWindowPos.h
15
/// @author Jakob Erdmann
16
/// @date Thu, 09.03.2023
17
///
18
// Store persistent window position
19
/****************************************************************************/
20
#pragma once
21
#include <config.h>
22
#include <utils/foxtools/fxheader.h>
23
24
25
26
// ===========================================================================
27
// class definition
28
// ===========================================================================
29
/**
30
* @class GUIPersistentWindowPos
31
* @brief Persists window position in the registry
32
*/
33
class GUIPersistentWindowPos {
34
35
public:
36
/** @brief Constructor (Notifies both the parent and the storage about being initialised)
37
* @param[in] parent The parent window
38
* @param[in] str The storage of object selections to use
39
*/
40
GUIPersistentWindowPos(FXWindow* parent, const std::string& name, bool storeSize,
41
int x = 150, int y = 150,
42
int width = 700, int height = 500,
43
int minSize = 400, int minTitlebarHeight = 20);
44
45
/// @brief Destructor (Notifies both the parent and the storage about being destroyed)
46
~GUIPersistentWindowPos();
47
48
void saveWindowPos();
49
void loadWindowPos();
50
51
protected:
52
/// @brief The window for which the position is being stored
53
FXWindow* myParent;
54
55
/// @brief Name for storing in the registry
56
std::string myWindowName;
57
58
/// @brief whether window size shall be stored
59
bool myStoreSize;
60
61
int myDefaultX;
62
int myDefaultY;
63
64
int myDefaultWidth;
65
int myDefaultHeight;
66
67
int myMinSize;
68
int myMinTitlebarHeight;
69
70
GUIPersistentWindowPos();
71
72
};
73
74