StringWidgets.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Basic.h"
4 
6 {
7  struct LineEditBuilder :
8  public ValueMixin<LineEdit, std::string, LineEditBuilder>,
9  public ToolTipMixin<LineEditBuilder>
10  {
11  using ValueMixin::ValueMixin;
12  };
13 
14  struct ComboBoxBuilder :
15  public ValueMixin<ComboBox, std::string, ComboBoxBuilder>,
16  public ToolTipMixin<ComboBoxBuilder>
17  {
18  using ValueMixin::ValueMixin;
19 
21  options(std::vector<std::string> const& options)
22  {
23  widget().options = options;
24  return *this;
25  }
26 
28  addOptions(std::vector<std::string> const& options)
29  {
30  widget().options.insert(widget().options.end(), options.begin(), options.end());
31  return *this;
32  }
33 
34  operator WidgetPtr() const override
35  {
36  ComboBox& w = *dynamic_cast<ComboBox*>(widget_.get());
37  if (!w.options.empty())
38  {
39  const auto it = std::find(w.options.begin(),
40  w.options.end(),
41  getSingleValue<std::string>(w.defaultValue));
42  if (it == w.options.end())
43  {
44  w.defaultValue = makeValue(w.options.front());
45  }
46  }
47  return widget_;
48  }
49  };
50 } // namespace armarx::RemoteGui::detail
51 
52 namespace armarx::RemoteGui
53 {
54  inline detail::LineEditBuilder
55  makeLineEdit(std::string const& name)
56  {
57  return detail::LineEditBuilder(name);
58  }
59 
60  inline detail::ComboBoxBuilder
61  makeComboBox(std::string const& name)
62  {
63  return detail::ComboBoxBuilder(name);
64  }
65 } // namespace armarx::RemoteGui
Basic.h
armarx::RemoteGui::detail::LineEditBuilder
Definition: StringWidgets.h:7
armarx::RemoteGui
Definition: LightweightRemoteGuiComponentPlugin.h:30
armarx::RemoteGui::detail
Definition: Basic.h:10
armarx::RemoteGui::detail::WidgetBuilder::widget_
WidgetPtr widget_
Definition: Basic.h:38
armarx::RemoteGui::makeLineEdit
detail::LineEditBuilder makeLineEdit(std::string const &name)
Definition: StringWidgets.h:55
armarx::RemoteGui::detail::WidgetMixin< ComboBox, ComboBoxBuilder >::widget
ComboBox & widget()
Definition: Basic.h:54
armarx::RemoteGui::detail::ComboBoxBuilder::addOptions
ComboBoxBuilder & addOptions(std::vector< std::string > const &options)
Definition: StringWidgets.h:28
armarx::RemoteGui::detail::ToolTipMixin
Definition: Basic.h:225
armarx::RemoteGui::Client::ComboBox
Definition: Widgets.h:50
armarx::RemoteGui::makeValue
ValueVariant makeValue(bool value)
Definition: Storage.cpp:144
armarx::RemoteGui::detail::ComboBoxBuilder::options
ComboBoxBuilder & options(std::vector< std::string > const &options)
Definition: StringWidgets.h:21
armarx::WidgetDescription::WidgetPtr
::IceInternal::Handle<::armarx::WidgetDescription::Widget > WidgetPtr
Definition: NJointControllerBase.h:67
armarx::RemoteGui::makeComboBox
detail::ComboBoxBuilder makeComboBox(std::string const &name)
Definition: StringWidgets.h:61
armarx::RemoteGui::detail::ComboBoxBuilder
Definition: StringWidgets.h:14
armarx::RemoteGui::detail::ValueMixin
Definition: Basic.h:73