From 2d1c84a16c36869ca292b74348f2ef852f2f8a62 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sun, 25 Dec 2011 16:33:45 +0100 Subject: menu: Container could contains and draw DrawableControls DrawableControls register/unregister itself during construction/destruction at the Container (supplied as owner) and get automatically drawn --- src/menu/container.cpp | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) (limited to 'src/menu/container.cpp') diff --git a/src/menu/container.cpp b/src/menu/container.cpp index 3bed894e..d39ac736 100644 --- a/src/menu/container.cpp +++ b/src/menu/container.cpp @@ -28,32 +28,31 @@ namespace usdx { - Container::Container(Control* parent) - : DrawableControl(parent) + Container::Container(Container* owner) + : DrawableControl(owner) { } Container::~Container() + { + controls.clear(); + } + + void Container::draw(void) { for (std::list::iterator it = controls.begin(); it != controls.end(); it++) { - delete *it; + (*it)->repaint(); } - - controls.clear(); } - void Container::repaint(void) + void Container::add(DrawableControl *child) { - if (get_visible()) { - draw(); - - for (std::list::const_iterator it = - controls.begin(); - it != controls.end(); it++) { + controls.push_back(child); + } - (*it)->repaint(); - } - } + void Container::remove(DrawableControl *child) + { + controls.remove(child); } }; -- cgit v1.2.3