diff options
Diffstat (limited to '')
-rw-r--r-- | src/menu/frame.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/menu/frame.cpp b/src/menu/frame.cpp index d3695392..cbf073f5 100644 --- a/src/menu/frame.cpp +++ b/src/menu/frame.cpp @@ -32,17 +32,22 @@ namespace usdx log4cpp::Category::getInstance("usdx.menu.frame"); Frame::Frame(Container* parent) - : Container(parent), background(NULL) + : Container(parent, FrameContainerHelper(this)), background(NULL) { } Frame::Frame(Container* parent, FrameBackground* background) - : Container(parent), background(background) + : Container(parent, FrameContainerHelper(this)), background(background) { } Frame::~Frame() { + if (parent) { + parent->removeFrame(); + parent = NULL; + } + if (background) { delete background; background = NULL; @@ -71,4 +76,16 @@ namespace usdx Container::draw(); } + + Frame::FrameContainerHelper::FrameContainerHelper(Frame* self) : + ContainerHelper(self), self(self) + { + } + + void Frame::FrameContainerHelper::add(Container* c) const + { + if (c) { + c->setFrame(self); + } + } }; |