Gazebo Gui
API Reference
8.3.0
insert_drive_file
Tutorials
library_books
Classes
toc
Namespaces
insert_drive_file
Files
launch
Gazebo Website
Index
List
Hierarchy
Members: All
Members: Functions
Members: Variables
Members: Typedefs
Members: Enumerations
Members: Enumerator
List
Members
Functions
Typedefs
Variables
Enumerations
Enumerator
src
gz-gui
include
gz
gui
Application.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2018 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
#ifndef GZ_GUI_APPLICATION_HH_
18
#define GZ_GUI_APPLICATION_HH_
19
20
#include <memory>
21
#include <string>
22
#include <utility>
23
#include <vector>
24
25
#include "
gz/gui/qt.h
"
26
#include "gz/gui/Export.hh"
27
28
#ifdef _WIN32
29
// Disable warning C4251 which is triggered by
30
// std::unique_ptr
31
#pragma warning(push)
32
#pragma warning(disable: 4251)
33
#endif
34
35
namespace
tinyxml2
36
{
37
class
XMLElement;
38
}
39
40
namespace
gz::gui
41
{
42
class
ApplicationPrivate;
43
class
Dialog
;
44
class
MainWindow
;
45
class
Plugin
;
46
48
enum class
WindowType
: int
49
{
52
kMainWindow
= 0,
53
56
kDialog
= 1
57
};
58
63
class
GZ_GUI_VISIBLE
Application
:
public
QApplication
64
{
65
Q_OBJECT
66
73
public
:
Application
(
int
&_argc,
char
**_argv,
74
const
WindowType
_type =
WindowType::kMainWindow
,
75
const
char
*_renderEngineGuiApiBackend =
nullptr
);
76
78
public
:
virtual
~Application
();
79
82
public
: QQmlApplicationEngine *
Engine
()
const
;
83
94
public
:
bool
LoadPlugin
(
const
std::string
&_filename,
95
const
tinyxml2::XMLElement *_pluginElem =
nullptr
);
96
105
public
:
bool
LoadConfig
(
const
std::string
&_path);
106
112
public
:
bool
LoadDefaultConfig
();
113
121
public
:
void
SetDefaultConfigPath
(
const
std::string
&_path);
122
127
public
:
std::string
DefaultConfigPath
();
128
132
public
:
void
SetPluginPathEnv
(
const
std::string
&_env);
133
136
public
:
void
AddPluginPath
(
const
std::string
&_path);
137
149
public
:
std::vector<std::pair<std::string, std::vector<std::string>
>>
150
PluginList
();
151
158
public
:
bool
RemovePlugin
(
const
std::string
&_pluginName);
159
164
public
:
std::shared_ptr<Plugin>
PluginByName
(
165
const
std::string
&_pluginName)
const
;
166
169
signals:
void
PluginAdded
(
const
QString
&_objectName);
170
172
public
slots:
void
OnPluginClose
();
173
177
public
:
bool
CreateMainWindow
();
178
185
private
:
bool
InitializeMainWindow();
186
192
private
:
bool
InitializeDialogs();
193
196
private
:
void
RemovePlugin(
std::shared_ptr<Plugin>
_plugin);
197
202
private
:
bool
AddPluginsToWindow();
203
207
private
:
bool
ApplyConfig();
208
211
private
:
std::unique_ptr<ApplicationPrivate>
dataPtr;
212
};
213
216
GZ_GUI_VISIBLE
217
Application
*
App
();
218
}
// namespace gz::gui
219
220
#ifdef _MSC_VER
221
#pragma warning(pop)
222
#endif
223
224
#endif
// GZ_GUI_APPLICATION_HH_