| @@ -23,6 +23,15 @@ START_NAMESPACE_DGL | |||||
| // ----------------------------------------------------------------------- | // ----------------------------------------------------------------------- | ||||
| /** | |||||
| Sub-Widget class. | |||||
| This is a handy Widget class that can be freely positioned to be used directly on a Window. | |||||
| This widget takes the full size of the Window it is mapped to. | |||||
| Sub-widgets can be added on top of this top-level widget, by creating them with this class as parent. | |||||
| Doing so allows for custom position and sizes. | |||||
| */ | |||||
| class SubWidget : public Widget | class SubWidget : public Widget | ||||
| { | { | ||||
| public: | public: | ||||
| @@ -35,8 +35,16 @@ START_NAMESPACE_DGL | |||||
| class TopLevelWidget : public Widget | class TopLevelWidget : public Widget | ||||
| { | { | ||||
| public: | public: | ||||
| /** | |||||
| Constructor. | |||||
| */ | |||||
| explicit TopLevelWidget(Window& windowToMapTo); | explicit TopLevelWidget(Window& windowToMapTo); | ||||
| /** | |||||
| Destructor. | |||||
| */ | |||||
| virtual ~TopLevelWidget(); | |||||
| private: | private: | ||||
| struct PrivateData; | struct PrivateData; | ||||
| PrivateData* const pData; | PrivateData* const pData; | ||||
| @@ -16,6 +16,14 @@ | |||||
| #include "SubWidgetPrivateData.hpp" | #include "SubWidgetPrivateData.hpp" | ||||
| SubWidget::SubWidget(Widget* const widgetToGroupTo) | |||||
| : pData(new PrivateData(this, widgetToGroupTo)) {} | |||||
| SubWidget::~SubWidget() | |||||
| { | |||||
| delete pData; | |||||
| } | |||||
| template<typename T> | template<typename T> | ||||
| bool SubWidget::contains(T x, T y) const noexcept | bool SubWidget::contains(T x, T y) const noexcept | ||||
| { | { | ||||
| @@ -15,3 +15,11 @@ | |||||
| */ | */ | ||||
| #include "TopLevelWidgetPrivateData.hpp" | #include "TopLevelWidgetPrivateData.hpp" | ||||
| TopLevelWidget::TopLevelWidget(Window& windowToMapTo) | |||||
| : pData(new PrivateData(this, windowToMapTo)) {} | |||||
| TopLevelWidget::~TopLevelWidget() | |||||
| { | |||||
| delete pData; | |||||
| } | |||||