15class bwMouseButtonEvent;
16class bwMouseButtonDragEvent;
52 virtual auto
getLabel() const -> const std::
string*;
53 virtual auto
canAlign() const ->
bool;
54 virtual auto
createHandler() -> std::unique_ptr<bwScreenGraph::EventHandler> = 0;
121template<class T, class _RawT = typename std::remove_pointer<T>::type>
124 static_assert(std::is_base_of<bwWidget, _RawT>::value,
"Type is not a widget");
126 return dynamic_cast<_RawT*
>(&widget);
135 class _RawT =
typename std::remove_pointer<typename std::remove_const<T>::type>::type>
138 static_assert(std::is_base_of<bwWidget, _RawT>::value,
"Type is not a widget");
140 return dynamic_cast<const _RawT*
>(&widget);
148template<class T, class _RawT = typename std::remove_pointer<T>::type>
151 static_assert(std::is_base_of<bwWidget, _RawT>::value,
"Type is not a widget");
153 return dynamic_cast<_RawT*
>(widget);
162 class _RawT =
typename std::remove_pointer<typename std::remove_const<T>::type>::type>
165 static_assert(std::is_base_of<bwWidget, _RawT>::value,
"Type is not a widget");
167 return dynamic_cast<const _RawT*
>(widget);