From e0a9a94a8b57dbed29e57860008e8f2bf2417751 Mon Sep 17 00:00:00 2001 From: cnjinhao Date: Fri, 6 Feb 2015 07:23:17 +0800 Subject: [PATCH] fix clang compiling errors --- include/nana/gui/widgets/widget.hpp | 6 +-- include/nana/paint/gadget.hpp | 7 +-- source/basic_types.cpp | 15 +++--- source/deploy.cpp | 11 ++-- source/paint/gadget.cpp | 78 ++++++++++++++--------------- 5 files changed, 60 insertions(+), 57 deletions(-) diff --git a/include/nana/gui/widgets/widget.hpp b/include/nana/gui/widgets/widget.hpp index c50de156..0de7a33d 100644 --- a/include/nana/gui/widgets/widget.hpp +++ b/include/nana/gui/widgets/widget.hpp @@ -266,7 +266,7 @@ namespace nana return (this->empty() == false); } - window handle() const + window handle() const override { return handle_; } @@ -349,7 +349,7 @@ namespace nana API::activate_window(handle_); } - window handle() const + window handle() const override { return handle_; } @@ -508,7 +508,7 @@ namespace nana return (this->empty() == false); } - window handle() const + window handle() const override { return handle_; } diff --git a/include/nana/paint/gadget.hpp b/include/nana/paint/gadget.hpp index 8709258b..d64c9293 100644 --- a/include/nana/paint/gadget.hpp +++ b/include/nana/paint/gadget.hpp @@ -1,6 +1,7 @@ /* * Graphics Gadget Implementation - * Copyright(C) 2003-2013 Jinhao(cnjinhao@hotmail.com) + * Nana C++ Library(http://www.nanapro.org) + * Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com) * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at @@ -21,8 +22,8 @@ namespace paint { namespace gadget { - void close_16_pixels(nana::paint::graphics&, int x, int y, uint32_t style, const color&); - void cross(nana::paint::graphics&, int x, int y, uint32_t size, uint32_t thickness, const nana::color&); + void close_16_pixels(::nana::paint::graphics&, int x, int y, unsigned style, const color&); + void cross(::nana::paint::graphics&, int x, int y, unsigned size, unsigned thickness, const nana::color&); }//end namespace gadget diff --git a/source/basic_types.cpp b/source/basic_types.cpp index 2ccf119e..f8bb0823 100644 --- a/source/basic_types.cpp +++ b/source/basic_types.cpp @@ -12,6 +12,7 @@ #include #include +#include namespace nana { @@ -102,7 +103,12 @@ namespace nana return; } - std::transform(css_color.begin(), css_color.end(), css_color.begin(), std::tolower); + //std::tolower is not allowed because of concept requirements + std::transform(css_color.begin(), css_color.end(), css_color.begin(), [](char ch){ + if('A' <= ch && ch <= 'Z') + return static_cast(ch - ('A' - 'a')); + return ch; + }); auto endpos = css_color.find(' ', pos + 1); if (endpos == css_color.npos) endpos = css_color.size(); @@ -144,11 +150,8 @@ namespace nana rgb.emplace_back(i->str()); - bool is_real; - if (is_real = (rgb.back().back() == '%')) - pat.assign("(\\d*\\.)?\\d+\\%"); - else - pat.assign("\\d+"); + const bool is_real = (rgb.back().back() == '%'); + pat.assign(is_real ? "(\\d*\\.)?\\d+\\%" : "\\d+"); for (++i; i != end; ++i) { diff --git a/source/deploy.cpp b/source/deploy.cpp index de83232d..6017edfd 100644 --- a/source/deploy.cpp +++ b/source/deploy.cpp @@ -1,9 +1,10 @@ /* * The Deploy Implementation - * Copyright(C) 2003-2013 Jinhao(cnjinhao@hotmail.com) + * Nana C++ Library(http://www.nanapro.org) + * Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com) * - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE_1_0.txt or copy at + * Distributed under the Boost Software License, Version 1.0. + * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) * * @file: nana/depoly.cpp @@ -13,7 +14,7 @@ #include #include -#include +#include #if defined(NANA_WINDOWS) #include #elif defined(NANA_LINUX) @@ -47,7 +48,7 @@ namespace nana return ::wcscpy(dest, source); #else return ::strcpy(dest, source); -#endif +#endif } int stoi(const std::string& str, std::size_t * pos, int base) diff --git a/source/paint/gadget.cpp b/source/paint/gadget.cpp index 75298919..c6da79e6 100644 --- a/source/paint/gadget.cpp +++ b/source/paint/gadget.cpp @@ -1,7 +1,7 @@ /* * Graphics Gadget Implementation * Nana C++ Library(http://www.nanapro.org) - * Copyright(C) 2003-2014 Jinhao(cnjinhao@hotmail.com) + * Copyright(C) 2003-2015 Jinhao(cnjinhao@hotmail.com) * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at @@ -19,7 +19,7 @@ namespace paint { namespace gadget { - void close_16_pixels(::nana::paint::graphics& graph, int x, int y, uint32_t style, const ::nana::color& clr) + void close_16_pixels(::nana::paint::graphics& graph, int x, int y, unsigned style, const ::nana::color& clr) { graph.set_color(clr); if(0 == style) @@ -50,59 +50,57 @@ namespace gadget } } - void cross(graphics& graph, int x, int y, uint32_t size, uint32_t thickness, const ::nana::color& color) + void cross(graphics& graph, int x, int y, unsigned size, unsigned thickness, const ::nana::color& clr) { - if (thickness + 2 <= size) - { - int gap = (size - thickness) / 2; + if (thickness + 2 <= size) + { + int gap = (size - thickness) / 2; - nana::point ps[12]; - ps[0].x = x + gap; - ps[1].x = ps[0].x + thickness - 1; - ps[1].y = ps[0].y = y; + nana::point ps[12]; + ps[0].x = x + gap; + ps[1].x = ps[0].x + thickness - 1; + ps[1].y = ps[0].y = y; - ps[2].x = ps[1].x; - ps[2].y = y + gap; + ps[2].x = ps[1].x; + ps[2].y = y + gap; - ps[3].x = ps[2].x + gap; - ps[3].y = ps[2].y; + ps[3].x = ps[2].x + gap; + ps[3].y = ps[2].y; - ps[4].x = ps[3].x; - ps[4].y = ps[3].y + thickness - 1; + ps[4].x = ps[3].x; + ps[4].y = ps[3].y + thickness - 1; - ps[5].x = ps[1].x; - ps[5].y = ps[4].y; + ps[5].x = ps[1].x; + ps[5].y = ps[4].y; - ps[6].x = ps[5].x; - ps[6].y = ps[5].y + gap; + ps[6].x = ps[5].x; + ps[6].y = ps[5].y + gap; - ps[7].x = x + gap; - ps[7].y = ps[6].y; + ps[7].x = x + gap; + ps[7].y = ps[6].y; - ps[8].x = ps[7].x; - ps[8].y = ps[4].y; + ps[8].x = ps[7].x; + ps[8].y = ps[4].y; - ps[9].x = x; - ps[9].y = ps[4].y; + ps[9].x = x; + ps[9].y = ps[4].y; - ps[10].x = x; - ps[10].y = y + gap; + ps[10].x = x; + ps[10].y = y + gap; - ps[11].x = x + gap; - ps[11].y = y + gap; + ps[11].x = x + gap; + ps[11].y = y + gap; - auto darker = color.blend(colors::black, true); - graph.set_color(darker); + graph.set_color(clr.blend(colors::black, true)); - for (int i = 0; i < 11; ++i) - graph.line(ps[i], ps[i + 1]); - graph.line(ps[11], ps[0]); + for (int i = 0; i < 11; ++i) + graph.line(ps[i], ps[i + 1]); + graph.line(ps[11], ps[0]); - graph.set_color(color); - graph.rectangle(rectangle{ ps[10].x + 1, ps[10].y + 1, (gap << 1) + thickness - 2, thickness - 2 }, true); - graph.rectangle(rectangle{ ps[0].x + 1, ps[0].y + 1, thickness - 2, (gap << 1) + thickness - 2 }, true); - - } + graph.set_color(clr); + graph.rectangle(rectangle{ ps[10].x + 1, ps[10].y + 1, (gap << 1) + thickness - 2, thickness - 2 }, true); + graph.rectangle(rectangle{ ps[0].x + 1, ps[0].y + 1, thickness - 2, (gap << 1) + thickness - 2 }, true); + } } }//end namespace gadget