Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
eclipse
GitHub Repository: eclipse/sumo
Path: blob/main/src/utils/gui/windows/GUIGlChildWindow.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 GUIGlChildWindow.h
15
/// @author Daniel Krajzewicz
16
/// @author Jakob Erdmann
17
/// @author Michael Behrisch
18
/// @date Fri, 29.04.2005
19
///
20
//
21
/****************************************************************************/
22
#pragma once
23
#include <config.h>
24
25
#include "GUISUMOAbstractView.h"
26
27
28
// ===========================================================================
29
// class declaration
30
// ===========================================================================
31
32
class MFXCheckableButton;
33
class MFXMenuButtonTooltip;
34
35
// ===========================================================================
36
// class definitions
37
// ===========================================================================
38
39
class GUIGlChildWindow : public FXMDIChild {
40
FXDECLARE(GUIGlChildWindow)
41
42
public:
43
/// @brief constructor
44
GUIGlChildWindow(FXMDIClient* p, GUIMainWindow* GUIMainWindowParent,
45
FXMDIMenu* mdimenu, const FXString& name, FXMenuBar* gripNavigationToolbar,
46
FXIcon* ic = NULL, FXuint opts = 0, FXint x = 0, FXint y = 0, FXint w = 0, FXint h = 0);
47
48
/// @brief destructor
49
virtual ~GUIGlChildWindow();
50
51
/// @brief get build GL Canvas
52
virtual FXGLCanvas* getBuildGLCanvas() const;
53
54
/// @brief create GUIGlChildWindow
55
virtual void create();
56
57
/// @brief return GUISUMOAbstractView
58
GUISUMOAbstractView* getView() const;
59
60
/// @brief Returns the GUIMainWindow parent
61
GUIMainWindow* getGUIMainWindowParent();
62
63
/// @name buttons call backs
64
/// @{
65
long onCmdRecenterView(FXObject*, FXSelector, void*);
66
long onCmdEditViewport(FXObject*, FXSelector, void*);
67
long onCmdEditViewScheme(FXObject*, FXSelector, void*);
68
long onCmdShowToolTipsView(FXObject* sender, FXSelector, void*);
69
long onCmdShowToolTipsMenu(FXObject* sender, FXSelector, void*);
70
long onCmdZoomStyle(FXObject* sender, FXSelector, void*);
71
long onCmdChangeColorScheme(FXObject*, FXSelector sel, void*);
72
/// @}
73
74
/// @brief return a reference to navigation toolbar
75
FXToolBar* getNavigationToolBar(GUISUMOAbstractView& v);
76
77
virtual std::vector<GUIGlID> getObjectIDs(int messageId) const {
78
// FOX does not allow abstract virtual function here
79
UNUSED_PARAMETER(messageId);
80
return std::vector<GUIGlID>();
81
}
82
83
/// @ brief return a pointer to locator popup
84
FXPopup* getLocatorPopup();
85
86
/// @brief return combobox with the current coloring schemes (standard, fastest standard, real world...)
87
MFXComboBoxIcon* getColoringSchemesCombo();
88
89
/// @brief get menu for tooltips menu
90
MFXCheckableButton* getShowToolTipsMenu() const;
91
92
/** @brief Centers the view onto the given artifact
93
* @param[in] id The id of the object to center the view on
94
*/
95
void setView(GUIGlID id);
96
97
/// @brief true if the object is selected (may include extra logic besides calling gSelected)
98
virtual bool isSelected(GUIGlObject* o) const;
99
100
protected:
101
/// @brief FOX needs this
102
FOX_CONSTRUCTOR(GUIGlChildWindow)
103
104
/// @brief The parent window
105
GUIMainWindow* myGUIMainWindowParent = nullptr;
106
107
/// @brief The grip navigation tool bar
108
FXMenuBar* myGripNavigationToolbar = nullptr;
109
110
/// @brief The static navigation tool bar
111
FXToolBar* myStaticNavigationToolBar = nullptr;
112
113
/// @brief The view
114
GUISUMOAbstractView* myView = nullptr;
115
116
/// @brief Zoom but
117
MFXCheckableButton* myZoomStyle = nullptr;
118
119
/// The locator menu
120
FXPopup* myLocatorPopup = nullptr;
121
122
/// @brief The locator button
123
MFXMenuButtonTooltip* myLocatorButton = nullptr;
124
125
/// @brief menu for tooltips view
126
MFXCheckableButton* myShowToolTipsView = nullptr;
127
128
/// @brief menu for tooltips menu
129
MFXCheckableButton* myShowToolTipsMenu = nullptr;
130
131
/// @brief The contents frame
132
FXVerticalFrame* myChildWindowContentFrame = nullptr;
133
134
/// @brief The coloring schemes
135
MFXComboBoxIcon* myColoringSchemes = nullptr;
136
137
/// @brief build navigation toolbar
138
void buildNavigationToolBar();
139
140
/// @brief build coloring toolbar
141
void buildColoringToolBar();
142
143
/// @brief build screenshot toolbar
144
void buildScreenshotToolBar();
145
146
private:
147
/// @brief Invalidated copy constructor.
148
GUIGlChildWindow(const GUIGlChildWindow&) = delete;
149
150
/// @brief Invalidated assignment operator.
151
GUIGlChildWindow& operator=(const GUIGlChildWindow&) = delete;
152
};
153
154