ArmarXGuiInterface.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5 *
6 * ArmarX is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 * ArmarX is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * @package
19 * @author
20 * @date
21 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22 * GNU General Public License
23 */
24#pragma once
25
26#include <QIcon>
27#include <QWidget>
28
30
32using ArmarXWidgetInfoPtr = std::shared_ptr<ArmarXWidgetInfo>;
33
35using WidgetCreatorMap = std::map<QString, ArmarXWidgetInfoPtr>;
36
37/**
38 * @brief The ArmarXWidgetInfo class
39 *
40 * \ingroup ArmarXGuiBase
41 */
43{
44public:
45 ArmarXWidgetInfo(WidgetCreatorFunction creatorFunction, QIcon icon, QIcon categoryIcon) :
46 creatorFunction(creatorFunction), icon(icon), categoryIcon(categoryIcon)
47 {
48 }
49
52 {
53 return creatorFunction();
54 }
55
56 QIcon
57 getIcon() const
58 {
59 return icon;
60 }
61
62 QIcon
64 {
65 return categoryIcon;
66 }
67
68private:
69 WidgetCreatorFunction creatorFunction;
70 QIcon icon;
71 QIcon categoryIcon;
72};
73
74/**
75 \class ArmarXGuiInterface
76 \brief The main gui interface.
77 \see ArmarXGuiPlugin
78
79 */
81{
82public:
84 {
85 }
86
87 virtual QString
89 {
90 return "ArmarXGuiInterface";
91 }
92
94};
95
96
97Q_DECLARE_INTERFACE(ArmarXGuiInterface, "ArmarXGuiInterface/1.00")
std::shared_ptr< ArmarXWidgetInfo > ArmarXWidgetInfoPtr
armarx::ArmarXWidgetControllerPtr(* WidgetCreatorFunction)()
std::map< QString, ArmarXWidgetInfoPtr > WidgetCreatorMap
The main gui interface.
virtual WidgetCreatorMap getProvidedWidgets()=0
virtual QString getPluginName()
The ArmarXWidgetInfo class.
QIcon getIcon() const
armarx::ArmarXWidgetControllerPtr createInstance() const
ArmarXWidgetInfo(WidgetCreatorFunction creatorFunction, QIcon icon, QIcon categoryIcon)
QIcon getCategoryIcon() const
IceUtil::Handle< ArmarXWidgetController > ArmarXWidgetControllerPtr