add Rectangle::size_request() which returns actual rectangle size, not bounding box

This commit is contained in:
Paul Davis 2018-11-21 14:06:47 -05:00
parent a9c2e2f7e5
commit 35a9bcc409
3 changed files with 11 additions and 0 deletions

View file

@ -90,6 +90,8 @@ public:
void set_outline_what (What);
void set_outline_all () { set_outline_what (ArdourCanvas::Rectangle::ALL); }
void size_request (double& w, double& h) const;
private:
/** Our rectangle; note that x0 may not always be less than x1
* and likewise with y0 and y1.

View file

@ -614,6 +614,8 @@ Item::size_request (double& w, double& h) const
{
Rect r (bounding_box());
std::cerr << "\titem " << this << " bbox " << r << std::endl;
w = std::max (requested_width, r.width());
h = std::max (requested_height, r.height());
}

View file

@ -161,6 +161,13 @@ Rectangle::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) con
render_children (area, context);
}
void
Rectangle::size_request (double& w, double& h) const
{
w = _rect.width();
h = _rect.height();
}
void
Rectangle::compute_bounding_box () const
{