diff options
Diffstat (limited to '')
-rw-r--r-- | src/menu/control.cpp | 10 | ||||
-rw-r--r-- | src/menu/control.hpp | 16 |
2 files changed, 17 insertions, 9 deletions
diff --git a/src/menu/control.cpp b/src/menu/control.cpp index 5a19682d..6ca59e8e 100644 --- a/src/menu/control.cpp +++ b/src/menu/control.cpp @@ -39,8 +39,8 @@ namespace usdx // you need the next iterator to be able to produce the next value after // removing it (each control, will be issue a request to remove it self // from the list) - for (std::list<Control*>::iterator next = slaves.begin(), it = next++; - it != slaves.end(); it = next++) { + for (std::list<const Control*>::iterator next = slaves.begin(), + it = next++; it != slaves.end(); it = next++) { delete *it; } @@ -65,17 +65,17 @@ namespace usdx } } - Control* Control::get_owner(void) const + const Control* Control::get_owner(void) const { return owner; } - void Control::add_slave(Control *new_slave) + void Control::add_slave(const Control *new_slave) { slaves.push_back(new_slave); } - void Control::remove_slave(Control *slave) + void Control::remove_slave(const Control *slave) { slaves.remove(slave); } diff --git a/src/menu/control.hpp b/src/menu/control.hpp index b821e79b..a4314579 100644 --- a/src/menu/control.hpp +++ b/src/menu/control.hpp @@ -43,10 +43,14 @@ namespace usdx Control* owner; protected: - std::list<Control*> slaves; + /** + * All slaves the control owns. All these controls should be deleted + * during decontruction of this control. + */ + std::list<const Control*> slaves; - void add_slave(Control*); - void remove_slave(Control*); + void add_slave(const Control*); + void remove_slave(const Control*); public: Control(Control*); @@ -58,7 +62,11 @@ namespace usdx * withthe new owner. */ void set_owner(Control*); - Control* get_owner(void) const; + + /** + * Returns the current owner of this control. + */ + const Control* get_owner(void) const; }; }; |