IntegerWidgets.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QPushButton>
4 #include <QSlider>
5 #include <QSpinBox>
6 
7 #include "Basic.h"
8 
9 namespace armarx::RemoteGui
10 {
11  struct IntSpinBoxHandler : TypedWidget<IntSpinBox, QSpinBox, VALUE_VARIANT_INT>
12  {
13  static QWidgetT*
15  CreateWidgetCallback const& createChild,
16  const QObject* stateChangeReceiver,
17  const char* stateChangeSlot)
18  {
20  QWidgetT* widget = new QWidgetT();
21 
22  widget->setToolTip(QString::fromStdString(desc.toolTip));
23  widget->setMinimum(desc.min);
24  widget->setMaximum(desc.max);
25 
26  QObject::connect(
27  widget, SIGNAL(valueChanged(int)), stateChangeReceiver, stateChangeSlot);
28 
29  return widget;
30  }
31 
32  static void
33  updateGui(RemoteWidgetT const& desc, QWidgetT* widget, ValueT const& value)
34  {
35  widget->setValue(value);
36  }
37 
38  static ValueT
39  handleGuiChange(RemoteWidgetT const& desc, QWidgetT* widget)
40  {
41  return widget->value();
42  }
43  };
44 
45  struct IntSliderHandler : TypedWidget<IntSlider, QSlider, VALUE_VARIANT_INT>
46  {
47  static QWidgetT*
49  CreateWidgetCallback const& createChild,
50  const QObject* stateChangeReceiver,
51  const char* stateChangeSlot)
52  {
54  QWidgetT* widget = new QWidgetT();
55 
56  widget->setToolTip(QString::fromStdString(desc.toolTip));
57  widget->setOrientation(Qt::Horizontal);
58 
59  widget->setMinimum(desc.min);
60  widget->setMaximum(desc.max);
61 
62  QObject::connect(
63  widget, SIGNAL(valueChanged(int)), stateChangeReceiver, stateChangeSlot);
64 
65  return widget;
66  }
67 
68  static void
69  updateGui(RemoteWidgetT const& desc, QWidgetT* widget, ValueT const& value)
70  {
71  widget->setValue(value);
72  }
73 
74  static ValueT
75  handleGuiChange(RemoteWidgetT const& desc, QWidgetT* widget)
76  {
77  return widget->value();
78  }
79  };
80 
81  struct ButtonHandler : TypedWidget<Button, QPushButton, VALUE_VARIANT_INT>
82  {
83  static QWidgetT*
85  CreateWidgetCallback const& createChild,
86  const QObject* stateChangeReceiver,
87  const char* stateChangeSlot)
88  {
90  QWidgetT* widget = new QWidgetT();
91  widget->setToolTip(QString::fromStdString(desc.toolTip));
92  widget->setText(toQString(desc.label));
93 
94  QObject::connect(widget, SIGNAL(clicked()), stateChangeReceiver, stateChangeSlot);
95 
96  return widget;
97  }
98 
99  static void
100  updateGui(RemoteWidgetT const& desc, QWidgetT* widget, ValueT const& value)
101  {
102  widget->setProperty("ClickCount", QVariant(value));
103  }
104 
105  static ValueT
106  handleGuiChange(RemoteWidgetT const& desc, QWidgetT* widget)
107  {
108  int newValue = widget->property("ClickCount").toInt() + 1;
109  widget->setProperty("ClickCount", QVariant(newValue));
110  return newValue;
111  }
112  };
113 } // namespace armarx::RemoteGui
armarx::RemoteGui::ButtonHandler
Definition: IntegerWidgets.h:81
armarx::RemoteGui::ButtonHandler::updateGui
static void updateGui(RemoteWidgetT const &desc, QWidgetT *widget, ValueT const &value)
Definition: IntegerWidgets.h:100
armarx::RemoteGui
Definition: LightweightRemoteGuiComponentPlugin.h:30
armarx::RemoteGui::TypedWidget
Definition: TypedWidget.h:113
armarx::RemoteGui::ButtonHandler::createWidget
static QWidgetT * createWidget(RemoteWidgetT const &desc, CreateWidgetCallback const &createChild, const QObject *stateChangeReceiver, const char *stateChangeSlot)
Definition: IntegerWidgets.h:84
armarx::RemoteGui::IntSpinBoxHandler
Definition: IntegerWidgets.h:11
armarx::RemoteGui::TypedWidget< IntSpinBox, QSpinBox, VALUE_VARIANT_INT >::ValueT
typename Storage< ValueType >::Type ValueT
Definition: TypedWidget.h:118
armarx::RemoteGui::IntSliderHandler::handleGuiChange
static ValueT handleGuiChange(RemoteWidgetT const &desc, QWidgetT *widget)
Definition: IntegerWidgets.h:75
armarx::RemoteGui::IntSpinBoxHandler::handleGuiChange
static ValueT handleGuiChange(RemoteWidgetT const &desc, QWidgetT *widget)
Definition: IntegerWidgets.h:39
ARMARX_TRACE
#define ARMARX_TRACE
Definition: trace.h:77
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:855
armarx::RemoteGui::ButtonHandler::handleGuiChange
static ValueT handleGuiChange(RemoteWidgetT const &desc, QWidgetT *widget)
Definition: IntegerWidgets.h:106
Basic.h
armarx::RemoteGui::IntSliderHandler
Definition: IntegerWidgets.h:45
armarx::RemoteGui::Client::IntSlider
Definition: Widgets.h:81
armarx::RemoteGui::IntSliderHandler::updateGui
static void updateGui(RemoteWidgetT const &desc, QWidgetT *widget, ValueT const &value)
Definition: IntegerWidgets.h:69
armarx::RemoteGui::IntSpinBoxHandler::updateGui
static void updateGui(RemoteWidgetT const &desc, QWidgetT *widget, ValueT const &value)
Definition: IntegerWidgets.h:33
armarx::RemoteGui::TypedWidget< IntSpinBox, QSpinBox, VALUE_VARIANT_INT >::QWidgetT
QSpinBox QWidgetT
Definition: TypedWidget.h:116
armarx::RemoteGui::IntSliderHandler::createWidget
static QWidgetT * createWidget(RemoteWidgetT const &desc, CreateWidgetCallback const &createChild, const QObject *stateChangeReceiver, const char *stateChangeSlot)
Definition: IntegerWidgets.h:48
armarx::RemoteGui::Client::IntSpinBox
Definition: Widgets.h:69
armarx::RemoteGui::toQString
QString toQString(std::string const &string)
Definition: WidgetHandler.cpp:14
armarx::RemoteGui::Client::Button
Definition: Widgets.h:120
armarx::RemoteGui::CreateWidgetCallback
std::function< QWidgetPtr(WidgetPtr const &)> CreateWidgetCallback
Definition: WidgetHandler.h:20
armarx::RemoteGui::IntSpinBoxHandler::createWidget
static QWidgetT * createWidget(RemoteWidgetT const &desc, CreateWidgetCallback const &createChild, const QObject *stateChangeReceiver, const char *stateChangeSlot)
Definition: IntegerWidgets.h:14