RemoteGui.h
Go to the documentation of this file.
1 /**
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @author Fabian Reister ( fabian dot reister at kit dot edu )
17  * @date 2021
18  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19  * GNU General Public License
20  */
21 
22 #pragma once
23 
24 #include <mutex>
25 
26 #include <Eigen/Core>
27 #include <Eigen/Geometry>
28 
30 
32 #include <ArmarXGui/interface/RemoteGuiInterface.h>
35 
37 {
38  class Component;
39 
40  class RemoteGui
41  {
42  public:
43  RemoteGui(const RemoteGuiInterfacePrx& remoteGui, Component& navigator);
44 
45  ~RemoteGui();
46 
47  void shutdown();
48 
49  void enable();
50  void disable();
51 
52  void reset();
53 
54  private:
55  std::mutex mtx;
56 
57  std::mutex handleEventsMtx;
58  RemoteGuiInterfacePrx remoteGui;
59 
61 
62  Component& navigator;
63 
65 
66  void createRemoteGuiTab();
67 
68  // thread function
69  void run();
70 
71  void handleEvents(armarx::RemoteGui::TabProxy& tab);
72 
73  const std::string REMOTE_GUI_TAB_MAME = "Navigator";
74 
75  struct RemoteGuiTab : armarx::RemoteGui::Client::Tab
76  {
78 
79  struct
80  {
82 
89  } targetPoseGroup;
90 
91  struct
92  {
94 
96 
97  // Control buttons for this navigator client
100  armarx::RemoteGui::Client::Button continueButton;
102 
103  } controlGroup;
104  };
105  RemoteGuiTab tab;
106  };
107 
108 } // namespace armarx::navigation::components::navigator
armarx::navigation::components::navigator::RemoteGui::~RemoteGui
~RemoteGui()
Definition: RemoteGui.cpp:47
armarx::navigation::components::navigator::RemoteGui::shutdown
void shutdown()
Definition: RemoteGui.cpp:327
armarx::RemoteGui::Client::Tab
Definition: Tab.h:15
armarx::navigation::components::navigator::RemoteGui::reset
void reset()
Definition: RemoteGui.cpp:372
RunningTask.h
armarx::navigation::components::navigator::Component
Definition: Component.h:83
Tab.h
armarx::RemoteGui::TabProxy
Definition: WidgetProxy.h:17
armarx::RemoteGui::Client::GroupBox
Definition: Widgets.h:193
armarx::navigation::components::navigator::RemoteGui::RemoteGui
RemoteGui(const RemoteGuiInterfacePrx &remoteGui, Component &navigator)
Definition: RemoteGui.cpp:35
armarx::navigation::components::navigator::RemoteGui::disable
void disable()
Definition: RemoteGui.cpp:354
WidgetProxy.h
armarx::navigation::components::navigator::RemoteGui
Definition: RemoteGui.h:40
armarx::RemoteGui::Client::HBoxLayout
Definition: Widgets.h:160
armarx::navigation::components::navigator::RemoteGui::enable
void enable()
Definition: RemoteGui.cpp:341
IceUtil::Handle
Definition: forward_declarations.h:29
Widgets.h
armarx::RemoteGui::Client::Button
Definition: Widgets.h:120
armarx::RemoteGui::Client::FloatSpinBox
Definition: Widgets.h:93
armarx::navigation::components::navigator
This file is part of ArmarX.
Definition: Component.cpp:92