diff --git a/include/nana/gui/widgets/listbox.hpp b/include/nana/gui/widgets/listbox.hpp index 30f19503..0a16a112 100644 --- a/include/nana/gui/widgets/listbox.hpp +++ b/include/nana/gui/widgets/listbox.hpp @@ -573,7 +573,8 @@ By \a clicking on one header the list get \a reordered, first up, and then down cat_proxy append(nana::string); ///< Appends a new category at the end void append(std::initializer_list); ///< Appends categories at the end - cat_proxy insert(cat_proxy, nana::string); + + cat_proxy insert(cat_proxy, ::std::wstring); cat_proxy at(size_type pos) const; /// add categories in order when use a key? @@ -606,7 +607,8 @@ By \a clicking on one header the list get \a reordered, first up, and then down item_proxy at(const index_pair &abs_pos) const; - void insert(const index_pair&, nana::string); /// void i18n(std::string msgid, Args&&... args) diff --git a/source/gui/widgets/label.cpp b/source/gui/widgets/label.cpp index b1d2191e..a8b700f1 100644 --- a/source/gui/widgets/label.cpp +++ b/source/gui/widgets/label.cpp @@ -52,8 +52,8 @@ namespace nana struct traceable { nana::rectangle r; - nana::string target; - nana::string url; + std::wstring target; + std::wstring url; }; public: @@ -148,7 +148,7 @@ namespace nana graph.typeface(ft); } - bool find(int x, int y, nana::string& target, nana::string& url) const + bool find(int x, int y, std::wstring& target, std::wstring& url) const { for (auto & t : traceable_) { diff --git a/source/gui/widgets/listbox.cpp b/source/gui/widgets/listbox.cpp index fca1ef68..d07e11d8 100644 --- a/source/gui/widgets/listbox.cpp +++ b/source/gui/widgets/listbox.cpp @@ -4324,7 +4324,7 @@ namespace nana ess.update(); } - auto listbox::insert(cat_proxy cat, nana::string str) -> cat_proxy + auto listbox::insert(cat_proxy cat, std::wstring str) -> cat_proxy { internal_scope_guard lock; auto & ess = _m_ess(); @@ -4358,7 +4358,12 @@ namespace nana return at(pos_abs.cat).at(pos_abs.item); } - void listbox::insert(const index_pair& pos, nana::string text) + void listbox::insert(const index_pair& pos, std::string text) + { + insert(pos, utf8_cast(text)); + } + + void listbox::insert(const index_pair& pos, std::wstring text) { internal_scope_guard lock; auto & ess = _m_ess(); diff --git a/source/gui/widgets/widget.cpp b/source/gui/widgets/widget.cpp index 4c6d89a3..3d180aed 100644 --- a/source/gui/widgets/widget.cpp +++ b/source/gui/widgets/widget.cpp @@ -59,10 +59,31 @@ namespace nana return this->_m_caption(); } - void widget::caption(std::string utf8) + std::wstring widget::caption_wstring() const throw() + { + return utf8_cast(_m_caption()); + } + + auto widget::caption_native() const throw() -> native_string_type + { +#if defined(NANA_WINDOWS) + return caption_wstring(); +#else + return caption(); +#endif + } + + widget& widget::caption(std::string utf8) { ::nana::throw_not_utf8(utf8); _m_caption(std::move(utf8)); + return *this; + } + + widget& widget::caption(std::wstring text) + { + _m_caption(utf8_cast(text)); + return *this; } void widget::i18n(i18n_eval eval)