X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fcanvas%2Fcanvas%2Frectangle.h;h=351074cc42ae26962648bed9551c3f7494c7cd81;hb=4d3cd732c93dd64b8768ec5f8398999f521ee6f0;hp=5df10fbc606c1772b3ce5294a025c4ebc3798fec;hpb=ced4378d0914bcfb926267772c45d1d23f3bed38;p=ardour.git diff --git a/libs/canvas/canvas/rectangle.h b/libs/canvas/canvas/rectangle.h index 5df10fbc60..351074cc42 100644 --- a/libs/canvas/canvas/rectangle.h +++ b/libs/canvas/canvas/rectangle.h @@ -34,7 +34,7 @@ public: Rectangle (Canvas*, Rect const &); Rectangle (Item*); Rectangle (Item*, Rect const &); - + void render (Rect const &, Cairo::RefPtr) const; void compute_bounding_box () const; @@ -64,6 +64,17 @@ public: void set_x1 (Coord); void set_y1 (Coord); + /** return @param y as a floating point fraction of the overall + * height of the rectangle. @param y is in canvas coordinate space. + * + * A value of zero indicates that y is at the bottom of the + * rectangle; a value of 1 indicates that y is at the top. + * + * Will return zero if there is no bounding box or if y + * is outside the bounding box. + */ + double vertical_fraction (double y) const; + enum What { NOTHING = 0x0, LEFT = 0x1, @@ -76,10 +87,6 @@ public: void set_outline_what (What); void set_outline_all () { set_outline_what (ArdourCanvas::Rectangle::ALL); } - protected: - void render_self (Rect const &, Cairo::RefPtr, Rect) const; - Rect get_self_for_render () const; - private: /** Our rectangle; note that x0 may not always be less than x1 * and likewise with y0 and y1.