diff --git a/include/nana/gui/widgets/listbox.hpp b/include/nana/gui/widgets/listbox.hpp index d57ee4c6..dd4d13d9 100644 --- a/include/nana/gui/widgets/listbox.hpp +++ b/include/nana/gui/widgets/listbox.hpp @@ -1411,6 +1411,8 @@ the nana::detail::basic_window member pointer scheme size_type append_header(std::string text_utf8, unsigned width = 120); size_type append_header(std::wstring text, unsigned width = 120); + void clear_headers(); ///< Removes all the columns. + cat_proxy append(std::string category); ///< Appends a new category to the end cat_proxy append(std::wstring category); ///< Appends a new category to the end void append(std::initializer_list categories); ///< Appends categories to the end diff --git a/include/nana/gui/widgets/menubar.hpp b/include/nana/gui/widgets/menubar.hpp index 24c965b5..75158284 100644 --- a/include/nana/gui/widgets/menubar.hpp +++ b/include/nana/gui/widgets/menubar.hpp @@ -95,6 +95,7 @@ namespace nana menu& push_back(const std::string&); ///< Appends a new (empty) menu. menu& at(size_t index) const; ///< Gets the menu specified by index. std::size_t length() const; ///< Number of menus. + void clear(); ///< Removes all the menus. /// Deselects the menu /** diff --git a/source/gui/widgets/listbox.cpp b/source/gui/widgets/listbox.cpp index c2d75048..a47142b2 100644 --- a/source/gui/widgets/listbox.cpp +++ b/source/gui/widgets/listbox.cpp @@ -307,6 +307,11 @@ namespace nana return cont_.back().index; } + void clear() + { + cont_.clear(); + } + unsigned pixels() const noexcept ///< the visible width of the whole header { unsigned pixels = 0; @@ -5319,6 +5324,15 @@ namespace nana return pos; } + void listbox::clear_headers() + { + internal_scope_guard lock; + auto & ess = _m_ess(); + ess.lister.erase(); + ess.header.clear(); + ess.update(); + } + listbox::cat_proxy listbox::append(std::string s) { internal_scope_guard lock; diff --git a/source/gui/widgets/menubar.cpp b/source/gui/widgets/menubar.cpp index 5071c094..3c211ba6 100644 --- a/source/gui/widgets/menubar.cpp +++ b/source/gui/widgets/menubar.cpp @@ -625,6 +625,13 @@ namespace nana { return get_drawer_trigger().ess().items.size(); } + + void menubar::clear() + { + internal_scope_guard lock; + get_drawer_trigger().ess().items.clear(); + API::refresh_window(handle()); + } bool menubar::cancel() {