17 template <
typename HandlerT>
22 register_.emplace(
typeid(
typename WidgetHandler::RemoteWidgetT), &handler);
29 registerHandler<CheckBoxHandler>(result);
30 registerHandler<ToggleButtonHandler>(result);
31 registerHandler<ButtonHandler>(result);
33 registerHandler<IntSpinBoxHandler>(result);
34 registerHandler<IntSliderHandler>(result);
35 registerHandler<FloatSpinBoxHandler>(result);
36 registerHandler<FloatSliderHandler>(result);
38 registerHandler<LabelHandler>(result);
39 registerHandler<LineEditHandler>(result);
40 registerHandler<ComboBoxHandler>(result);
42 registerHandler<GroupBoxHandler>(result);
43 registerHandler<VBoxLayoutHandler>(result);
44 registerHandler<HBoxLayoutHandler>(result);
45 registerHandler<SimpleGridLayoutSpanningChildHandler>(result);
46 registerHandler<SimpleGridLayoutHandler>(result);
47 registerHandler<GridLayoutHandler>(result);
49 registerHandler<HSpacerHandler>(result);
50 registerHandler<VSpacerHandler>(result);
51 registerHandler<HLineHandler>(result);
52 registerHandler<VLineHandler>(result);
53 registerHandler<EmptyWidgetHandler>(result);
55 registerHandler<Vector3fSpinBoxesHandler>(result);
56 registerHandler<PosRPYSpinBoxesHandler>(result);
65 auto descPtr = desc.get();
68 std::type_info
const& typeInfo =
typeid(*descPtr);
70 auto iter = widgetRegister.find(typeInfo);
71 if (iter == widgetRegister.end())
73 throw armarx::LocalException()
74 <<
"Unexpected widget type: "
76 <<
"\n only these types are supported:"
79 for (
const auto& [tid, _] : widgetRegister)
86 auto& widgetHandler = iter->second;
89 return *widgetHandler;