diff --git a/include/nana/gui/widgets/treebox.hpp b/include/nana/gui/widgets/treebox.hpp index ae5e03b1..9901e1bf 100644 --- a/include/nana/gui/widgets/treebox.hpp +++ b/include/nana/gui/widgets/treebox.hpp @@ -421,6 +421,9 @@ namespace nana bool checkable() const; ///< Determinte whether the checkboxs are enabled. + /// Clears the contents + void clear(); + /// \brief Creates an icon scheme with the specified name. /// /// The icon scheme includes 3 images for node states. diff --git a/source/gui/widgets/treebox.cpp b/source/gui/widgets/treebox.cpp index c75aea52..76f6dc20 100644 --- a/source/gui/widgets/treebox.cpp +++ b/source/gui/widgets/treebox.cpp @@ -866,8 +866,7 @@ namespace nana item_proxy& item_proxy::check(bool ck) { trigger_->check(node_, ck ? checkstate::checked : checkstate::unchecked); - if(trigger_->draw()) - API::update_window(trigger_->impl()->data.widget_ptr->handle()); + trigger_->draw(); return *this; } @@ -1664,7 +1663,8 @@ namespace nana if (!impl_->attr.auto_draw) return false; - impl_->draw(false); + if(impl_->draw(false)) + API::update_window(impl_->data.widget_ptr->handle()); return true; } @@ -2198,6 +2198,13 @@ namespace nana return get_drawer_trigger().checkable(); } + void treebox::clear() + { + auto impl = get_drawer_trigger().impl(); + impl->attr.tree_cont.clear(); + get_drawer_trigger().draw(); + } + treebox::node_image_type& treebox::icon(const std::string& id) const { return get_drawer_trigger().icon(id);