diff --git a/examples/run.hpp b/examples/run.hpp index 4dc8330..b85dd0c 100644 --- a/examples/run.hpp +++ b/examples/run.hpp @@ -30,7 +30,7 @@ void run_example(std::function setup, int w=3, __FILE__, __FUNCTION__, __LINE__); const core::Size size_init {854, 480}; - auto* font {new core::Font(core::Font::find("Monospace"), 24)}; + auto* font {new core::Font(core::Font::find("Monospace"), 16)}; auto* win {SDL_CreateWindow("basic_widgets example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, size_init.w, size_init.h, @@ -76,7 +76,7 @@ void run_example(std::function setup, int w=3, layout->handle_event(ev); } - renderer->draw_color({25, 25, 25, SDL_ALPHA_OPAQUE}); + renderer->draw_color({50, 60, 70, SDL_ALPHA_OPAQUE}); renderer->clear(); layout->render(); diff --git a/inc/basic_widgets/core/renderer.hpp b/inc/basic_widgets/core/renderer.hpp index 960624e..d247b6d 100644 --- a/inc/basic_widgets/core/renderer.hpp +++ b/inc/basic_widgets/core/renderer.hpp @@ -43,7 +43,7 @@ namespace bwidgets::core Renderer* draw_lines(const std::vector); Renderer* draw_point(const SDL_Point&); Renderer* draw_points(const std::vector); - Renderer* draw_rect(const SDL_Rect&); + Renderer* draw_rect(const SDL_Rect*); Renderer* draw_rects(const std::vector); Renderer* fill_rect(const SDL_Rect*); Renderer* fill_rects(const std::vector); @@ -52,28 +52,27 @@ namespace bwidgets::core SDL_Rect viewport(); Renderer* viewport(const SDL_Rect*); - inline Renderer* copy(Texture* t, const SDL_Rect* src, const SDL_Rect& dst) - { + inline Renderer* copy(Texture* t, const SDL_Rect* src, const SDL_Rect& dst) { auto d = dst; return copy(t, src, &d); } - inline Renderer* copy(Texture* t, const SDL_Rect& src, const SDL_Rect* dst) - { + inline Renderer* copy(Texture* t, const SDL_Rect& src, const SDL_Rect* dst) { auto s = src; return copy(t, &s, dst); } - inline Renderer* copy(Texture* t, const SDL_Rect& src, const SDL_Rect& dst) - { + inline Renderer* copy(Texture* t, const SDL_Rect& src, const SDL_Rect& dst) { auto s = src, d = dst; return copy(t, &s, &d); } - inline Renderer* fill_rect(const SDL_Rect& r) - { + inline Renderer* draw_rect(const SDL_Rect& r) { + auto rect = r; + return draw_rect(&rect); + } + inline Renderer* fill_rect(const SDL_Rect& r) { auto rect = r; return fill_rect(&rect); } - inline Renderer* viewport(const SDL_Rect& vp) - { + inline Renderer* viewport(const SDL_Rect& vp) { auto v = vp; return viewport(&v); } diff --git a/inc/basic_widgets/w/base/input.hpp b/inc/basic_widgets/w/base/input.hpp index 0bf0555..bedb7bf 100644 --- a/inc/basic_widgets/w/base/input.hpp +++ b/inc/basic_widgets/w/base/input.hpp @@ -120,7 +120,8 @@ namespace bwidgets::widget (uint8_t)(color_border.g / (i + 1)), (uint8_t)(color_border.b / (i+ 1)), color_border.a - })->draw_rect({ + }) + ->draw_rect({ _widget_area.x + i, _widget_area.y + i, _widget_area.w - 2 * i, @@ -187,7 +188,7 @@ namespace bwidgets::widget _font->text_size( std::string(input_min_width, input_width_unit) ).w + 2 * _border_width, - _font->height + 2 * _border_width + _font->line_skip + 4 * _border_width // _why_ 4 and not 2?… }; } diff --git a/src/core/renderer.cpp b/src/core/renderer.cpp index b152572..6a3e33d 100644 --- a/src/core/renderer.cpp +++ b/src/core/renderer.cpp @@ -109,10 +109,9 @@ core::Renderer* core::Renderer::draw_points(const std::vector pts) return this; } -core::Renderer* core::Renderer::draw_rect(const SDL_Rect& r) +core::Renderer* core::Renderer::draw_rect(const SDL_Rect* r) { - const SDL_Rect rect = r; - SDLError::success_or_throw(SDL_RenderDrawRect(c_pod, &rect), + SDLError::success_or_throw(SDL_RenderDrawRect(c_pod, r), __FILE__, __FUNCTION__, __LINE__); return this; diff --git a/src/w/base/widget.cpp b/src/w/base/widget.cpp index fccbdb2..e572df2 100644 --- a/src/w/base/widget.cpp +++ b/src/w/base/widget.cpp @@ -49,12 +49,8 @@ widget::Widget* widget::Widget::render() return this; #ifndef _NDEBUG - _renderer->viewport(nullptr) - ->draw_color({0, 255, 0, SDL_ALPHA_TRANSPARENT}) - ->draw_rect({ - _viewport.x - 1, _viewport.y - 1, - _viewport.w + 2, _viewport.h + 2 - }); + _renderer->draw_color({0, 255, 0, SDL_ALPHA_TRANSPARENT}) + ->draw_rect(nullptr); #endif _renderer->viewport(_viewport);