explicit conversion from point/size to rectangle

This commit is contained in:
Jinhao 2015-06-22 11:30:14 +08:00
parent 1bb9a09a8a
commit 28413b7f25
28 changed files with 82 additions and 77 deletions

View File

@ -98,10 +98,10 @@ namespace nana{
void _m_render_edge_nimbus(core_window_t* wd, const nana::rectangle & visual) void _m_render_edge_nimbus(core_window_t* wd, const nana::rectangle & visual)
{ {
nana::rectangle r(visual); auto r = visual;
r.pare_off(-static_cast<int>(weight())); r.pare_off(-static_cast<int>(weight()));
nana::rectangle good_r; rectangle good_r;
if(overlap(r, wd->root_graph->size(), good_r)) if (overlap(r, rectangle{ wd->root_graph->size() }, good_r))
{ {
if( (good_r.x < wd->pos_root.x) || (good_r.y < wd->pos_root.y) || if( (good_r.x < wd->pos_root.x) || (good_r.y < wd->pos_root.y) ||
(good_r.x + good_r.width > visual.x + visual.width) || (good_r.y + good_r.height > visual.y + visual.height)) (good_r.x + good_r.width > visual.x + visual.width) || (good_r.y + good_r.height > visual.y + visual.height))

View File

@ -46,7 +46,7 @@ namespace nana
class event_arg class event_arg
{ {
public: public:
virtual ~event_arg(); virtual ~event_arg() = default;
/// ignorable handlers behind the current one in a chain of event handlers will not get called. /// ignorable handlers behind the current one in a chain of event handlers will not get called.
void stop_propagation() const; void stop_propagation() const;

View File

@ -574,7 +574,7 @@ namespace nana{ namespace widgets{ namespace skeletons
virtual void nontext_render(graph_reference graph, int x, int y) override virtual void nontext_render(graph_reference graph, int x, int y) override
{ {
if(size_ != image_.size()) if(size_ != image_.size())
image_.stretch(image_.size(), graph, nana::rectangle(x, y, size_.width, size_.height)); image_.stretch(::nana::rectangle{ image_.size() }, graph, nana::rectangle(x, y, size_.width, size_.height));
else else
image_.paste(graph, x, y); image_.paste(graph, x, y);
} }

View File

@ -76,7 +76,7 @@ namespace nana
point pos() const; point pos() const;
void move(int x, int y); void move(int x, int y);
//void move(const point&); void move(const point&);
void move(const rectangle&); void move(const rectangle&);
void fgcolor(const nana::color&); void fgcolor(const nana::color&);

View File

@ -39,8 +39,6 @@ namespace nana
//end class internal_scope_guard //end class internal_scope_guard
//class event_arg //class event_arg
event_arg::~event_arg(){}
void event_arg::stop_propagation() const void event_arg::stop_propagation() const
{ {
stop_propagation_ = true; stop_propagation_ = true;

View File

@ -368,7 +368,7 @@ namespace nana
void drawer::_m_bground_end() void drawer::_m_bground_end()
{ {
if(core_window_->effect.bground && core_window_->effect.bground_fade_rate >= 0.01) if(core_window_->effect.bground && core_window_->effect.bground_fade_rate >= 0.01)
core_window_->other.glass_buffer.blend(core_window_->other.glass_buffer.size(), graphics, nana::point(), core_window_->effect.bground_fade_rate); core_window_->other.glass_buffer.blend(::nana::rectangle{ core_window_->other.glass_buffer.size() }, graphics, nana::point(), core_window_->effect.bground_fade_rate);
} }
void drawer::_m_draw_dynamic_drawing_object() void drawer::_m_draw_dynamic_drawing_object()

View File

@ -174,7 +174,7 @@ namespace nana{
} }
} }
#endif #endif
return primary_monitor_size(); return rectangle{ primary_monitor_size() };
} }
//platform-dependent //platform-dependent

View File

@ -210,7 +210,7 @@ namespace nana
beg = beg->parent; beg = beg->parent;
} }
glass_buffer.bitblt(wd->dimension, beg->drawer.graphics, wd->pos_root - beg->pos_root); glass_buffer.bitblt(::nana::rectangle{ wd->dimension }, beg->drawer.graphics, wd->pos_root - beg->pos_root);
nana::rectangle r(wd->pos_owner, wd->dimension); nana::rectangle r(wd->pos_owner, wd->dimension);
for (auto i = layers.rbegin(), layers_rend = layers.rend(); i != layers_rend; ++i) for (auto i = layers.rbegin(), layers_rend = layers.rend(); i != layers_rend; ++i)
@ -240,7 +240,7 @@ namespace nana
} }
} }
else else
glass_buffer.bitblt(wd->dimension, wd->parent->drawer.graphics, wd->pos_owner); glass_buffer.bitblt(::nana::rectangle{ wd->dimension }, wd->parent->drawer.graphics, wd->pos_owner);
const rectangle r_of_wd{ wd->pos_owner, wd->dimension }; const rectangle r_of_wd{ wd->pos_owner, wd->dimension };
for (auto child : wd->parent->children) for (auto child : wd->parent->children)

View File

@ -26,7 +26,7 @@ namespace nana
{ {
if(fade_rate_ < 0.001) if(fade_rate_ < 0.001)
return; return;
graph.blend(graph.size(), API::bgcolor(wd), fade_rate_); graph.blend(::nana::rectangle{ graph.size() }, API::bgcolor(wd), fade_rate_);
} }
private: private:
const double fade_rate_; const double fade_rate_;
@ -42,7 +42,7 @@ namespace nana
void take_effect(window, graph_reference graph) const void take_effect(window, graph_reference graph) const
{ {
graph.blur(graph.size(), radius_); graph.blur(::nana::rectangle{ graph.size() }, radius_);
} }
private: private:
const std::size_t radius_; const std::size_t radius_;

View File

@ -52,11 +52,13 @@ namespace nana
bool overlap(const rectangle& ir, const size& valid_input_area, const rectangle & dr, const size& valid_dst_area, rectangle& op_ir, rectangle& op_dr) bool overlap(const rectangle& ir, const size& valid_input_area, const rectangle & dr, const size& valid_dst_area, rectangle& op_ir, rectangle& op_dr)
{ {
if(overlap(ir, valid_input_area, op_ir) == false) rectangle valid_r{ valid_input_area };
if (overlap(ir, valid_r, op_ir) == false)
return false; return false;
valid_r = valid_dst_area;
rectangle good_dr; rectangle good_dr;
if(overlap(dr, valid_dst_area, good_dr) == false) if (overlap(dr, valid_r, good_dr) == false)
return false; return false;
zoom(ir, op_ir, dr, op_dr); zoom(ir, op_ir, dr, op_dr);

View File

@ -282,7 +282,7 @@ namespace nana{ namespace drawerbase
else else
e_state = element_state::disabled; e_state = element_state::disabled;
if (false == cite_.draw(graph, attr_.bgcolor, attr_.fgcolor, graph.size(), e_state)) if (false == cite_.draw(graph, attr_.bgcolor, attr_.fgcolor, ::nana::rectangle{ graph.size() }, e_state))
{ {
if (bground_mode::basic != API::effects_bground_mode(wdg_->handle())) if (bground_mode::basic != API::effects_bground_mode(wdg_->handle()))
{ {

View File

@ -521,7 +521,7 @@ namespace nana
} }
nana::point pos((image_pixels_ - imgsz.width) / 2 + 2, (vpix - imgsz.height) / 2 + 2); nana::point pos((image_pixels_ - imgsz.width) / 2 + 2, (vpix - imgsz.height) / 2 + 2);
img.stretch(img.size(), *graph_, nana::rectangle(pos, imgsz)); img.stretch(::nana::rectangle{ img.size() }, *graph_, nana::rectangle(pos, imgsz));
} }
private: private:
std::vector<std::shared_ptr<item>> items_; std::vector<std::shared_ptr<item>> items_;

View File

@ -414,7 +414,7 @@ namespace nana
r.y = static_cast<int>(newbuf.height() - r.height) / 2; r.y = static_cast<int>(newbuf.height() - r.height) / 2;
newbuf.stretch(nzbuf, r); newbuf.stretch(nzbuf, r);
nzbuf.blend(nzbuf.size(), dzbuf, nana::point(), fade * (count - i)); nzbuf.blend(::nana::rectangle{ nzbuf.size() }, dzbuf, nana::point(), fade * (count - i));
graph.bitblt(refpos.x, refpos.y, dzbuf); graph.bitblt(refpos.x, refpos.y, dzbuf);
API::update_window(*widget_); API::update_window(*widget_);
@ -442,7 +442,7 @@ namespace nana
nzbuf.rectangle(true, colors::white); nzbuf.rectangle(true, colors::white);
newbuf.stretch(nzbuf, r); newbuf.stretch(nzbuf, r);
nzbuf.blend(nzbuf.size(), dzbuf, nana::point(), fade * (count - i)); nzbuf.blend(::nana::rectangle{ nzbuf.size() }, dzbuf, nana::point(), fade * (count - i));
graph.bitblt(refpos.x, refpos.y, dzbuf); graph.bitblt(refpos.x, refpos.y, dzbuf);
API::update_window(*widget_); API::update_window(*widget_);

View File

@ -99,7 +99,7 @@ namespace nana
nana::point to_pos(x, r.y + 2); nana::point to_pos(x, r.y + 2);
to_pos.x += (image_pixels_ - imgsz.width) / 2; to_pos.x += (image_pixels_ - imgsz.width) / 2;
to_pos.y += (vpix - imgsz.height) / 2; to_pos.y += (vpix - imgsz.height) / 2;
item->image().stretch(item->image().size(), graph, nana::rectangle(to_pos, imgsz)); item->image().stretch(::nana::rectangle{ item->image().size() }, graph, nana::rectangle(to_pos, imgsz));
} }
x += (image_pixels_ + 2); x += (image_pixels_ + 2);
} }

View File

@ -1919,10 +1919,13 @@ namespace nana
void hovered(index_type pos) override void hovered(index_type pos) override
{ {
auto offset = ess_->lister.distance(ess_->scroll.offset_y_dpl, pos); auto offset = ess_->lister.distance(ess_->scroll.offset_y_dpl, pos);
ess_->pointer_where.first = parts::lister;
ess_->pointer_where.second = offset;
ess_->update(); if (ess_->pointer_where.first != parts::lister || ess_->pointer_where.second != offset)
{
ess_->pointer_where.first = parts::lister;
ess_->pointer_where.second = offset;
ess_->update();
}
} }
private: private:
essence_t * const ess_; essence_t * const ess_;
@ -2386,8 +2389,12 @@ namespace nana
auto i = inline_buffered_table.find(factory); auto i = inline_buffered_table.find(factory);
if (i != inline_buffered_table.end()) if (i != inline_buffered_table.end())
{ {
if (!i->second.empty()) auto & panes = i->second;
pane_ptr = std::move(i->second.front()); if (!panes.empty())
{
pane_ptr = std::move(panes.front());
panes.pop_front();
}
} }
if (!pane_ptr) if (!pane_ptr)
@ -3034,7 +3041,7 @@ namespace nana
if (y < content_r.y) if (y < content_r.y)
pane_pos.y = y - content_r.y; pane_pos.y = y - content_r.y;
inline_wdg->pane_widget.move(pane_pos.x, pane_pos.y); inline_wdg->pane_widget.move(pane_pos);
inline_wdg->pane_bottom.move(pane_r); inline_wdg->pane_bottom.move(pane_r);
} }
else else

View File

@ -112,7 +112,7 @@ namespace nana
_m_draw_background(fit_size.width, fit_size.height); _m_draw_background(fit_size.width, fit_size.height);
backimg.image.stretch(valid_area, graph, { pos, fit_size }); backimg.image.stretch(valid_area, graph, ::nana::rectangle{ pos, fit_size });
} }
else else
{ {
@ -151,7 +151,7 @@ namespace nana
_m_draw_background(graphsize.width, graphsize.height); _m_draw_background(graphsize.width, graphsize.height);
color invalid_clr_for_call; color invalid_clr_for_call;
backimg.bground->draw(graph, invalid_clr_for_call, invalid_clr_for_call, graphsize, element_state::normal); backimg.bground->draw(graph, invalid_clr_for_call, invalid_clr_for_call, rectangle{ graphsize }, element_state::normal);
} }
graph.setsta(); graph.setsta();
@ -171,7 +171,7 @@ namespace nana
else if (bground.gradual_from == bground.gradual_to) else if (bground.gradual_from == bground.gradual_to)
graph->rectangle(true, bground.gradual_from); graph->rectangle(true, bground.gradual_from);
else else
graph->gradual_rectangle(graph->size(), bground.gradual_from, bground.gradual_to, !bground.horizontal); graph->gradual_rectangle(::nana::rectangle{ graph->size() }, bground.gradual_from, bground.gradual_to, !bground.horizontal);
} }
} }
} }

View File

@ -106,7 +106,7 @@ namespace nana
void trigger::_m_draw_box(graph_reference graph) void trigger::_m_draw_box(graph_reference graph)
{ {
rectangle r = graph.size(); rectangle r{ graph.size() };
graph.gradual_rectangle(r, colors::button_face_shadow_end, colors::button_face_shadow_start, true); graph.gradual_rectangle(r, colors::button_face_shadow_end, colors::button_face_shadow_start, true);
::nana::color lt{ colors::gray }, rb{colors::white}; ::nana::color lt{ colors::gray }, rb{colors::white};
graph.frame_rectangle(r, lt, lt, rb, rb); graph.frame_rectangle(r, lt, lt, rb, rb);

View File

@ -132,7 +132,7 @@ namespace nana
_m_background(graph); _m_background(graph);
rectangle_rotator r(vertical_, graph.size()); rectangle_rotator r(vertical_, ::nana::rectangle{ graph.size() });
r.x_ref() = static_cast<int>(r.w() - fixedsize); r.x_ref() = static_cast<int>(r.w() - fixedsize);
r.w_ref() = fixedsize; r.w_ref() = fixedsize;
@ -159,7 +159,7 @@ namespace nana
if (!metrics_.pressed || !_m_check()) if (!metrics_.pressed || !_m_check())
return; return;
nana::rectangle_rotator r(vertical_, graph.size()); nana::rectangle_rotator r(vertical_, ::nana::rectangle{ graph.size() });
if(metrics_.what == buttons::forward) if(metrics_.what == buttons::forward)
{ {
r.x_ref() = static_cast<int>(fixedsize); r.x_ref() = static_cast<int>(fixedsize);
@ -253,7 +253,7 @@ namespace nana
{ {
if(_m_check()) if(_m_check())
{ {
rectangle_rotator r(vertical_, graph.size()); rectangle_rotator r(vertical_, rectangle{ graph.size() });
r.x_ref() = static_cast<int>(fixedsize + metrics_.scroll_pos); r.x_ref() = static_cast<int>(fixedsize + metrics_.scroll_pos);
r.w_ref() = static_cast<unsigned>(metrics_.scroll_length); r.w_ref() = static_cast<unsigned>(metrics_.scroll_length);

View File

@ -1285,7 +1285,7 @@ namespace nana{ namespace widgets
if (!API::widget_borderless(this->window_)) if (!API::widget_borderless(this->window_))
{ {
::nana::facade<element::border> facade; ::nana::facade<element::border> facade;
facade.draw(graph, bgcolor, API::fgcolor(this->window_), API::window_size(this->window_), API::element_state(this->window_)); facade.draw(graph, bgcolor, API::fgcolor(this->window_), ::nana::rectangle{ API::window_size(this->window_) }, API::element_state(this->window_));
} }
}; };
} }
@ -2775,12 +2775,12 @@ namespace nana{ namespace widgets
{ {
//draw the whole text if it is a RTL text, because Arbic language is transformable. //draw the whole text if it is a RTL text, because Arbic language is transformable.
canvas.string({}, str, len); canvas.string({}, str, len);
graph_.bitblt({ ent_pos, ::nana::size{ ent_pixels, canvas.height() } }, canvas, ::nana::point{ ent_off, 0 }); graph_.bitblt(::nana::rectangle{ ent_pos, ::nana::size{ ent_pixels, canvas.height() } }, canvas, ::nana::point{ ent_off, 0 });
} }
else else
{ {
canvas.string({}, ent_begin, ent_end - ent_begin); canvas.string({}, ent_begin, ent_end - ent_begin);
graph_.bitblt({ ent_pos, ::nana::size{ ent_pixels, canvas.height() } }, canvas); graph_.bitblt(::nana::rectangle{ ent_pos, ::nana::size{ ent_pixels, canvas.height() } }, canvas);
} }
} }
} }
@ -2830,7 +2830,7 @@ namespace nana{ namespace widgets
if (selected) if (selected)
{ {
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { str_w, line_h_pixels } }, true);
graph_.string(text_pos, ent.begin, len); graph_.string(text_pos, ent.begin, len);
} }
else else
@ -2839,7 +2839,7 @@ namespace nana{ namespace widgets
text_pos.x += static_cast<int>(str_w); text_pos.x += static_cast<int>(str_w);
} }
if (selected) if (selected)
graph_.rectangle({ text_pos, { whitespace_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { whitespace_w, line_h_pixels } }, true);
} }
else else
{ {
@ -2876,7 +2876,7 @@ namespace nana{ namespace widgets
//selected all //selected all
if (a.x <= pos && str_end <= b.x) if (a.x <= pos && str_end <= b.x)
{ {
graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { str_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(text_pos, ent.begin, len); graph_.string(text_pos, ent.begin, len);
} }
@ -2906,7 +2906,7 @@ namespace nana{ namespace widgets
part_pos.x += static_cast<int>(head_w); part_pos.x += static_cast<int>(head_w);
//Draw selected part //Draw selected part
graph_.rectangle({ part_pos, { sel_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ part_pos, { sel_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(part_pos, ent.begin + (a.x - pos), endpos - a.x); graph_.string(part_pos, ent.begin + (a.x - pos), endpos - a.x);
@ -2931,7 +2931,7 @@ namespace nana{ namespace widgets
else else
{ //LTR { //LTR
//Draw selected part //Draw selected part
graph_.rectangle({ text_pos, { sel_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { sel_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(text_pos, ent.begin, endpos - pos); graph_.string(text_pos, ent.begin, endpos - pos);
@ -2957,7 +2957,7 @@ namespace nana{ namespace widgets
if (a.x < pos) if (a.x < pos)
{ {
//Draw selected all //Draw selected all
graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true, { 0x33, 0x99, 0xFF }); graph_.rectangle(::nana::rectangle{ text_pos, { str_w, line_h_pixels } }, true, static_cast<color_rgb>(0x3399FF));
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(text_pos, ent.begin, len); graph_.string(text_pos, ent.begin, len);
} }
@ -2978,7 +2978,7 @@ namespace nana{ namespace widgets
::nana::point part_pos{ text_pos.x + static_cast<int>(head_w), text_pos.y }; ::nana::point part_pos{ text_pos.x + static_cast<int>(head_w), text_pos.y };
//Draw selected part //Draw selected part
graph_.rectangle({ part_pos, {str_w - head_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ part_pos, {str_w - head_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(part_pos, ent.begin + a.x - pos, len - (a.x - pos)); graph_.string(part_pos, ent.begin + a.x - pos, len - (a.x - pos));
} }
@ -2991,7 +2991,7 @@ namespace nana{ namespace widgets
if (str_pos.y < b.y) if (str_pos.y < b.y)
{ {
if (a.y < str_pos.y || ((a.y == str_pos.y) && (a.x <= str_pos.x ))) if (a.y < str_pos.y || ((a.y == str_pos.y) && (a.x <= str_pos.x )))
graph_.rectangle({ text_pos, { whitespace_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { whitespace_w, line_h_pixels } }, true);
} }
} }
else if (b.y == str_pos.y) else if (b.y == str_pos.y)
@ -3007,7 +3007,7 @@ namespace nana{ namespace widgets
if (pos + len <= b.x) if (pos + len <= b.x)
{ {
//Draw selected part //Draw selected part
graph_.rectangle({ text_pos, { str_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { str_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(text_pos, ent.begin, len); graph_.string(text_pos, ent.begin, len);
} }
@ -3021,7 +3021,7 @@ namespace nana{ namespace widgets
else else
{ {
//draw selected part //draw selected part
graph_.rectangle({ text_pos, { sel_w, line_h_pixels } }, true); graph_.rectangle(::nana::rectangle{ text_pos, { sel_w, line_h_pixels } }, true);
graph_.set_text_color(scheme_->selection_text.get_color()); graph_.set_text_color(scheme_->selection_text.get_color());
graph_.string(text_pos, ent.begin, b.x - pos); graph_.string(text_pos, ent.begin, b.x - pos);

View File

@ -55,7 +55,7 @@ namespace nana
virtual void slider(window, graph_reference graph, const slider_t& s) virtual void slider(window, graph_reference graph, const slider_t& s)
{ {
nana::rectangle r = graph.size(); nana::rectangle r{ graph.size() };
if(s.horizontal) if(s.horizontal)
{ {
r.x = s.pos; r.x = s.pos;
@ -390,7 +390,7 @@ namespace nana
nana::rectangle _m_bar_area() const nana::rectangle _m_bar_area() const
{ {
auto sz = other_.graph->size(); auto sz = other_.graph->size();
nana::rectangle r = sz; nana::rectangle r{ sz };
if(style::horizontal == attr_.dir) if(style::horizontal == attr_.dir)
{ {
r.x = attr_.slider_scale / 2 - attr_.border; r.x = attr_.slider_scale / 2 - attr_.border;

View File

@ -947,7 +947,7 @@ namespace nana
auto bgcolor = API::bgcolor(basis_.wd); auto bgcolor = API::bgcolor(basis_.wd);
auto fgcolor = API::fgcolor(basis_.wd); auto fgcolor = API::fgcolor(basis_.wd);
item_renderer::item_t m = { basis_.graph->size() }; item_renderer::item_t m{ ::nana::rectangle{ basis_.graph->size() } };
basis_.renderer->background(*basis_.graph, m.r, bgcolor); basis_.renderer->background(*basis_.graph, m.r, bgcolor);
@ -985,7 +985,7 @@ namespace nana
} }
if(false == item.img.empty()) if(false == item.img.empty())
item.img.stretch(item.img.size(), *basis_.graph, nana::rectangle(m.r.x + 4, (m.r.height - 16) / 2, 16, 16)); item.img.stretch(::nana::rectangle{ item.img.size() }, *basis_.graph, nana::rectangle(m.r.x + 4, (m.r.height - 16) / 2, 16, 16));
if(item.text.size()) if(item.text.size())
{ {

View File

@ -174,11 +174,11 @@ namespace nana
pos.x += static_cast<int>(scale + extra_size - size.width) / 2; pos.x += static_cast<int>(scale + extra_size - size.width) / 2;
pos.y += static_cast<int>(height - size.height) / 2; pos.y += static_cast<int>(height - size.height) / 2;
item.image.paste(size, graph, pos); item.image.paste(::nana::rectangle{ size }, graph, pos);
if(item.enable == false) if(item.enable == false)
{ {
nana::paint::graphics gh(size); nana::paint::graphics gh(size);
gh.bitblt(size, graph, pos); gh.bitblt(::nana::rectangle{ size }, graph, pos);
gh.rgb_to_wb(); gh.rgb_to_wb();
gh.paste(graph, pos.x, pos.y); gh.paste(graph, pos.x, pos.y);
} }
@ -400,7 +400,7 @@ namespace nana
void drawer::_m_draw_background(const ::nana::color& clr) void drawer::_m_draw_background(const ::nana::color& clr)
{ {
graph_->gradual_rectangle(graph_->size(), clr.blend(colors::white, 0.9), clr.blend(colors::black, 0.95), true); graph_->gradual_rectangle(::nana::rectangle{ graph_->size() }, clr.blend(colors::white, 0.9), clr.blend(colors::black, 0.95), true);
} }
void drawer::_m_draw() void drawer::_m_draw()

View File

@ -1260,7 +1260,7 @@ namespace nana
attr.area.x += (attr.area.width - fit_size.width) / 2; attr.area.x += (attr.area.width - fit_size.width) / 2;
attr.area.y += (attr.area.height - fit_size.height) / 2; attr.area.y += (attr.area.height - fit_size.height) / 2;
attr.area = fit_size; attr.area = fit_size;
img->stretch(size, graph, attr.area); img->stretch(::nana::rectangle{ size }, graph, attr.area);
} }
else else
img->paste(graph, attr.area.x + static_cast<int>(attr.area.width - size.width) / 2, attr.area.y + static_cast<int>(attr.area.height - size.height) / 2); img->paste(graph, attr.area.x + static_cast<int>(attr.area.width - size.width) / 2, attr.area.y + static_cast<int>(attr.area.height - size.height) / 2);

View File

@ -173,12 +173,10 @@ namespace nana
_m_move(x, y); _m_move(x, y);
} }
/* void widget::move(const point& pos)
void widget::move(const point& pos) //deprecated
{ {
_m_move(pos); _m_move(pos.x, pos.y);
} }
*/
void widget::move(const rectangle& r) void widget::move(const rectangle& r)
{ {

View File

@ -98,13 +98,13 @@ namespace detail
return bgcolor; return bgcolor;
} }
void blend(drawable_type dw, const nana::rectangle& area, pixel_color_t color, double fade_rate) void blend(drawable_type dw, const rectangle& area, pixel_color_t color, double fade_rate)
{ {
if(fade_rate <= 0) return; if(fade_rate <= 0) return;
if(fade_rate > 1) fade_rate = 1; if(fade_rate > 1) fade_rate = 1;
nana::rectangle r; rectangle r;
if(false == nana::overlap(drawable_size(dw), area, r)) if (false == ::nana::overlap(rectangle{ drawable_size(dw) }, area, r))
return; return;
unsigned red = static_cast<unsigned>((color.value & 0xFF0000) * fade_rate); unsigned red = static_cast<unsigned>((color.value & 0xFF0000) * fade_rate);

View File

@ -604,7 +604,7 @@ namespace paint
if(dst.handle_ && handle_ && (dst.handle_ != handle_)) if(dst.handle_ && handle_ && (dst.handle_ != handle_))
{ {
pixel_buffer s_pixbuf; pixel_buffer s_pixbuf;
s_pixbuf.attach(handle_, size()); s_pixbuf.attach(handle_, ::nana::rectangle{ size() });
s_pixbuf.blend(s_r, dst.handle_, d_pos, fade_rate); s_pixbuf.blend(s_r, dst.handle_, d_pos, fade_rate);
@ -1022,13 +1022,13 @@ namespace paint
void graphics::rectangle(bool solid) void graphics::rectangle(bool solid)
{ {
rectangle(size(), solid); rectangle(::nana::rectangle{ size() }, solid);
} }
void graphics::rectangle(bool solid, const ::nana::color& clr) void graphics::rectangle(bool solid, const ::nana::color& clr)
{ {
set_color(clr); set_color(clr);
rectangle(size(), solid); rectangle(::nana::rectangle{ size() }, solid);
} }
void graphics::rectangle(const ::nana::rectangle& r, bool solid) void graphics::rectangle(const ::nana::rectangle& r, bool solid)

View File

@ -263,7 +263,7 @@ namespace paint
void image::paste(graphics& dst, int x, int y) const void image::paste(graphics& dst, int x, int y) const
{ {
if(image_ptr_) if(image_ptr_)
image_ptr_->paste(image_ptr_->size(), dst, x, y); image_ptr_->paste(::nana::rectangle{ image_ptr_->size() }, dst, x, y);
} }
void image::paste(const nana::rectangle& r_src, graphics & dst, const nana::point& p_dst) const void image::paste(const nana::rectangle& r_src, graphics & dst, const nana::point& p_dst) const

View File

@ -22,10 +22,10 @@
namespace nana{ namespace paint namespace nana{ namespace paint
{ {
nana::rectangle valid_rectangle(const nana::size& s, const nana::rectangle& r) nana::rectangle valid_rectangle(const size& s, const rectangle& r)
{ {
nana::rectangle good_r; nana::rectangle good_r;
nana::overlap(s, r, good_r); nana::overlap(rectangle{ s }, r, good_r);
return good_r; return good_r;
} }
@ -384,13 +384,13 @@ namespace nana{ namespace paint
close(); close();
} }
void pixel_buffer::attach(drawable_type drawable, const nana::rectangle& want_r) void pixel_buffer::attach(drawable_type drawable, const ::nana::rectangle& want_r)
{ {
storage_.reset(); storage_.reset();
if(drawable) if(drawable)
{ {
nana::rectangle r; nana::rectangle r;
if(nana::overlap(nana::paint::detail::drawable_size(drawable), want_r, r)) if (::nana::overlap(::nana::rectangle{ nana::paint::detail::drawable_size(drawable) }, want_r, r))
storage_ = std::make_shared<pixel_buffer_storage>(drawable, r); storage_ = std::make_shared<pixel_buffer_storage>(drawable, r);
} }
} }
@ -429,16 +429,16 @@ namespace nana{ namespace paint
bool pixel_buffer::open(drawable_type drawable, const nana::rectangle & want_rectangle) bool pixel_buffer::open(drawable_type drawable, const nana::rectangle & want_rectangle)
{ {
nana::size sz = nana::paint::detail::drawable_size(drawable); auto sz = nana::paint::detail::drawable_size(drawable);
if(want_rectangle.x >= static_cast<int>(sz.width) || want_rectangle.y >= static_cast<int>(sz.height)) if(want_rectangle.x >= static_cast<int>(sz.width) || want_rectangle.y >= static_cast<int>(sz.height))
return false; return false;
nana::rectangle want_r = want_rectangle; auto want_r = want_rectangle;
if(want_r.width == 0) want_r.width = sz.width - want_r.x; if(want_r.width == 0) want_r.width = sz.width - want_r.x;
if(want_r.height == 0) want_r.height = sz.height - want_r.y; if(want_r.height == 0) want_r.height = sz.height - want_r.y;
nana::rectangle r; ::nana::rectangle r;
if(false == overlap(sz, want_r, r)) if (false == overlap(::nana::rectangle{ sz }, want_r, r))
return false; return false;
#if defined(NANA_WINDOWS) #if defined(NANA_WINDOWS)
BITMAPINFO bmpinfo; BITMAPINFO bmpinfo;
@ -1039,13 +1039,13 @@ namespace nana{ namespace paint
} }
} }
void pixel_buffer::blur(const nana::rectangle& r, std::size_t radius) void pixel_buffer::blur(const ::nana::rectangle& r, std::size_t radius)
{ {
auto sp = storage_.get(); auto sp = storage_.get();
if(nullptr == sp || radius < 1) return; if(nullptr == sp || radius < 1) return;
nana::rectangle good_r; ::nana::rectangle good_r;
if(overlap(r, this->size(), good_r)) if (overlap(r, ::nana::rectangle{ this->size() }, good_r))
(*(sp->img_pro.blur))->process(*this, good_r, radius); (*(sp->img_pro.blur))->process(*this, good_r, radius);
} }
}//end namespace paint }//end namespace paint