10 #ifndef GENERICMENUITEM_HPP 11 #define GENERICMENUITEM_HPP 14 #include <boost/signals2/signal.hpp> 16 namespace duds {
namespace ui {
namespace menu {
32 typedef boost::signals2::signal<
64 const std::string &
label,
80 const std::string &label,
99 const std::string &label,
100 const std::string &description,
101 const std::string &
value,
110 static std::shared_ptr<GenericMenuItem>
make(
111 const std::string &label,
124 static std::shared_ptr<GenericMenuItem>
make(
125 const std::string &label,
126 const std::string &description,
129 return std::make_shared<GenericMenuItem>(
147 static std::shared_ptr<GenericMenuItem>
make(
148 const std::string &label,
149 const std::string &description,
150 const std::string &value,
153 return std::make_shared<GenericMenuItem>(
184 const typename Signal::slot_type &slot,
185 boost::signals2::connect_position at = boost::signals2::at_back
187 return choseSig.connect(slot, at);
196 const typename Signal::group_type &group,
197 const typename Signal::slot_type &slot,
198 boost::signals2::connect_position at = boost::signals2::at_back
200 return choseSig.connect(group, slot, at);
209 const typename Signal::extended_slot_type &slot,
210 boost::signals2::connect_position at = boost::signals2::at_back
212 return choseSig.connect_extended(slot, at);
221 const typename Signal::group_type &group,
222 const typename Signal::extended_slot_type &slot,
223 boost::signals2::connect_position at = boost::signals2::at_back
225 return choseSig.connect_extended(group, slot, at);
234 const typename Signal::group_type &group
236 choseSig.disconnect(group);
244 template<
typename Slot>
246 choseSig.disconnect(slotFunc);
255 const typename Signal::slot_type &slot,
256 boost::signals2::connect_position at = boost::signals2::at_back
258 return selSig.connect(slot, at);
267 const typename Signal::group_type &group,
268 const typename Signal::slot_type &slot,
269 boost::signals2::connect_position at = boost::signals2::at_back
271 return selSig.connect(group, slot, at);
280 const typename Signal::extended_slot_type &slot,
281 boost::signals2::connect_position at = boost::signals2::at_back
283 return selSig.connect_extended(slot, at);
292 const typename Signal::group_type &group,
293 const typename Signal::extended_slot_type &slot,
294 boost::signals2::connect_position at = boost::signals2::at_back
296 return selSig.connect_extended(group, slot, at);
305 const typename Signal::group_type &group
307 selSig.disconnect(group);
315 template<
typename Slot>
317 selSig.disconnect(slotFunc);
326 const typename Signal::slot_type &slot,
327 boost::signals2::connect_position at = boost::signals2::at_back
329 return deselSig.connect(slot, at);
338 const typename Signal::group_type &group,
339 const typename Signal::slot_type &slot,
340 boost::signals2::connect_position at = boost::signals2::at_back
342 return deselSig.connect(group, slot, at);
351 const typename Signal::extended_slot_type &slot,
352 boost::signals2::connect_position at = boost::signals2::at_back
354 return deselSig.connect_extended(slot, at);
363 const typename Signal::group_type &group,
364 const typename Signal::extended_slot_type &slot,
365 boost::signals2::connect_position at = boost::signals2::at_back
367 return deselSig.connect_extended(group, slot, at);
376 const typename Signal::group_type &group
378 deselSig.disconnect(group);
386 template<
typename Slot>
388 deselSig.disconnect(slotFunc);
404 #endif // #ifndef GENERICMENUITEM_HPP
static constexpr BitFlags Zero()
Makes a bit flags container with all flags cleared.