top_level_drawable: Implement copy and move constructors
This commit is contained in:
parent
afd6baa7cf
commit
f6763be08b
3 changed files with 31 additions and 1 deletions
|
@ -290,9 +290,10 @@ void raise_drawable(top_level_drawable* tld)
|
||||||
static void tidy_drawables()
|
static void tidy_drawables()
|
||||||
{
|
{
|
||||||
// Remove all invalidated TLDs from the list.
|
// Remove all invalidated TLDs from the list.
|
||||||
DBG_DM << "tidying drawables";
|
DBG_DM << "tidying " << top_level_drawables_.size() << " drawables";
|
||||||
auto& vec = top_level_drawables_;
|
auto& vec = top_level_drawables_;
|
||||||
vec.erase(std::remove(vec.begin(), vec.end(), nullptr), vec.end());
|
vec.erase(std::remove(vec.begin(), vec.end(), nullptr), vec.end());
|
||||||
|
DBG_DM << top_level_drawables_.size() << " after tidying";
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace draw_manager
|
} // namespace draw_manager
|
||||||
|
|
|
@ -29,4 +29,26 @@ top_level_drawable::~top_level_drawable()
|
||||||
draw_manager::deregister_drawable(this);
|
draw_manager::deregister_drawable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
top_level_drawable::top_level_drawable(const top_level_drawable&)
|
||||||
|
{
|
||||||
|
draw_manager::register_drawable(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
top_level_drawable& top_level_drawable::operator=(const top_level_drawable&)
|
||||||
|
{
|
||||||
|
draw_manager::register_drawable(this);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
top_level_drawable::top_level_drawable(top_level_drawable&&)
|
||||||
|
{
|
||||||
|
draw_manager::register_drawable(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
top_level_drawable& top_level_drawable::operator=(top_level_drawable&&)
|
||||||
|
{
|
||||||
|
draw_manager::register_drawable(this);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace gui2
|
} // namespace gui2
|
||||||
|
|
|
@ -53,6 +53,13 @@ class top_level_drawable
|
||||||
protected:
|
protected:
|
||||||
top_level_drawable();
|
top_level_drawable();
|
||||||
virtual ~top_level_drawable();
|
virtual ~top_level_drawable();
|
||||||
|
|
||||||
|
// These make sure the TLD is registered.
|
||||||
|
top_level_drawable(const top_level_drawable&);
|
||||||
|
top_level_drawable& operator=(const top_level_drawable&);
|
||||||
|
top_level_drawable(top_level_drawable&&);
|
||||||
|
top_level_drawable& operator=(top_level_drawable&&);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Update state and any parameters that may effect layout, or any of
|
* Update state and any parameters that may effect layout, or any of
|
||||||
|
|
Loading…
Add table
Reference in a new issue