From 7aa9d9e37344492181cd9bda124543c657e92c4c Mon Sep 17 00:00:00 2001 From: Jinhao Date: Mon, 15 Feb 2016 01:15:40 +0800 Subject: [PATCH 1/2] arg_category is renamed arg_listbox_category --- include/nana/gui/widgets/listbox.hpp | 6 +++--- source/gui/widgets/listbox.cpp | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/nana/gui/widgets/listbox.hpp b/include/nana/gui/widgets/listbox.hpp index 42ac9123..58f02ef0 100644 --- a/include/nana/gui/widgets/listbox.hpp +++ b/include/nana/gui/widgets/listbox.hpp @@ -478,7 +478,7 @@ namespace nana }; /// The event argument type for listbox's category_dbl_click - struct arg_category + struct arg_listbox_category : public event_arg { drawerbase::listbox::cat_proxy category; @@ -489,7 +489,7 @@ namespace nana /// Determines whether expension/shrink of category is blocked bool category_change_blocked() const noexcept; - arg_category(const drawerbase::listbox::cat_proxy&) noexcept; + arg_listbox_category(const drawerbase::listbox::cat_proxy&) noexcept; private: mutable bool block_change_; }; @@ -505,7 +505,7 @@ namespace nana basic_event selected; /// An event occurs when a listbox category is double clicking. - basic_event category_dbl_click; + basic_event category_dbl_click; }; struct scheme diff --git a/source/gui/widgets/listbox.cpp b/source/gui/widgets/listbox.cpp index 3e214531..5dc59321 100644 --- a/source/gui/widgets/listbox.cpp +++ b/source/gui/widgets/listbox.cpp @@ -3571,10 +3571,10 @@ namespace nana if (!item_pos.is_category()) //being the npos of item.second is a category return; - arg_category ai(cat_proxy(essence_, item_pos.cat)); - lister.wd_ptr()->events().category_dbl_click.emit(ai); + arg_listbox_category arg_cat(cat_proxy(essence_, item_pos.cat)); + lister.wd_ptr()->events().category_dbl_click.emit(arg_cat); - if(!ai.category_change_blocked()){ + if (!arg_cat.category_change_blocked()){ bool do_expand = (lister.expand(item_pos.cat) == false); lister.expand(item_pos.cat, do_expand); @@ -4299,17 +4299,17 @@ namespace nana //Implementation of arg_category //Contributed by leobackes(pr#97) - arg_category::arg_category ( const nana::drawerbase::listbox::cat_proxy& cat ) noexcept + arg_listbox_category::arg_listbox_category(const nana::drawerbase::listbox::cat_proxy& cat) noexcept : category(cat), block_change_(false) { } - void arg_category::block_category_change() const noexcept + void arg_listbox_category::block_category_change() const noexcept { block_change_ = true; } - bool arg_category::category_change_blocked() const noexcept + bool arg_listbox_category::category_change_blocked() const noexcept { return block_change_; } From 5e09cf1aef8042c482727edba8f5f16d940fb878 Mon Sep 17 00:00:00 2001 From: Jinhao Date: Wed, 17 Feb 2016 00:32:15 +0800 Subject: [PATCH 2/2] add a check for support of C++11 inline namespace --- include/nana/c++defines.hpp | 4 +++- include/nana/filesystem/filesystem.hpp | 10 ++++++++-- source/filesystem/filesystem.cpp | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/include/nana/c++defines.hpp b/include/nana/c++defines.hpp index 7f1f8898..d23e0a48 100644 --- a/include/nana/c++defines.hpp +++ b/include/nana/c++defines.hpp @@ -39,13 +39,15 @@ #ifndef NANA_CXX_DEFINES_INCLUDED #define NANA_CXX_DEFINES_INCLUDED #define STD_FILESYSTEM_NOT_SUPPORTED + //C++ language #if defined(_MSC_VER) # undef STD_FILESYSTEM_NOT_SUPPORTED # if (_MSC_VER < 1900) # //Nana defines some macros for lack of support of keywords # define _ALLOW_KEYWORD_MACROS -# +# +# define CXX_NO_INLINE_NAMESPACE //no support of C++11 inline namespace until Visual C++ 2015 # define noexcept //no support of noexcept until Visual C++ 2015 # define constexpr //no support of constexpr until Visual C++ 2015 # endif diff --git a/include/nana/filesystem/filesystem.hpp b/include/nana/filesystem/filesystem.hpp index 5a308e9c..a3a3e373 100644 --- a/include/nana/filesystem/filesystem.hpp +++ b/include/nana/filesystem/filesystem.hpp @@ -42,8 +42,13 @@ // namespace std { namespace experimental { namespace filesystem { inline namespace v1 { -namespace nana { namespace experimental { inline namespace v1 +namespace nana { namespace experimental { + +#ifndef CXX_NO_INLINE_NAMESPACE +inline namespace v1 { +#endif + namespace filesystem { enum class file_type @@ -367,8 +372,9 @@ namespace filesystem return index ? path.substr(0, index + 1) : std::basic_string(); } - +#ifndef CXX_NO_INLINE_NAMESPACE } //end namespace v1 +#endif } //end namespace filesystem } //end namespace experimental diff --git a/source/filesystem/filesystem.cpp b/source/filesystem/filesystem.cpp index 42691b6a..aca26162 100644 --- a/source/filesystem/filesystem.cpp +++ b/source/filesystem/filesystem.cpp @@ -38,7 +38,9 @@ namespace nana { namespace experimental { +#ifndef CXX_NO_INLINE_NAMESPACE inline namespace v1 { +#endif namespace filesystem { //class filesystem_error @@ -870,7 +872,10 @@ namespace nana { namespace experimental { ::chdir(p.c_str()); #endif } + +#ifndef CXX_NO_INLINE_NAMESPACE } //end namespace v1 +#endif }//end namespace filesystem } //end namespace experimental }//end namespace nana