add [missing] left_half_rectangle util
authorRobin Gareus <robin@gareus.org>
Thu, 9 Jan 2014 19:48:04 +0000 (20:48 +0100)
committerRobin Gareus <robin@gareus.org>
Thu, 9 Jan 2014 19:48:04 +0000 (20:48 +0100)
libs/gtkmm2ext/gtkmm2ext/utils.h
libs/gtkmm2ext/utils.cc

index 0bde3cb56287a149f9065e0a1c52e5ddcce70434..aac1973f9648840009a53097918f43909e020044 100644 (file)
@@ -102,6 +102,7 @@ namespace Gtkmm2ext {
        void rounded_top_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
        void rounded_bottom_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
        void rounded_right_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
+       void rounded_left_half_rectangle (Cairo::RefPtr<Cairo::Context>, double x, double y, double w, double h, double r=10);
 
        /* C API for rounded rectangles */
 
@@ -112,6 +113,7 @@ namespace Gtkmm2ext {
        void rounded_top_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
        void rounded_bottom_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
        void rounded_right_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
+       void rounded_left_half_rectangle (cairo_t*, double x, double y, double w, double h, double r=10);
 
        Gtk::Label* left_aligned_label (std::string const &);
 
index f0a09d56857a2dbfa3adfdbc2aeb7d98e0669c5e..1fec597fbaf562bf0aecde5c39f12a0b850dde89 100644 (file)
@@ -415,6 +415,13 @@ Gtkmm2ext::rounded_bottom_half_rectangle (Cairo::RefPtr<Cairo::Context> context,
 {
        rounded_bottom_half_rectangle (context->cobj(), x, y, w, h, r);
 }
+
+void
+Gtkmm2ext::rounded_left_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
+{
+       rounded_left_half_rectangle (context->cobj(), x, y, w, h, r);
+}
+
 void
 Gtkmm2ext::rounded_right_half_rectangle (Cairo::RefPtr<Cairo::Context> context, double x, double y, double w, double h, double r)
 {
@@ -434,6 +441,19 @@ Gtkmm2ext::rounded_rectangle (cairo_t* cr, double x, double y, double w, double
        cairo_close_path (cr);
 }
 
+void
+Gtkmm2ext::rounded_left_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
+{
+       double degrees = M_PI / 180.0;
+
+       cairo_new_sub_path (cr);
+       cairo_line_to (cr, x+w, y); // tr
+       cairo_line_to (cr, x+w, y + h); // br
+       cairo_arc (cr, x + r, y + h - r, r, 90 * degrees, 180 * degrees);  //bl
+       cairo_arc (cr, x + r, y + r, r, 180 * degrees, 270 * degrees);  //tl
+       cairo_close_path (cr);
+}
+
 void
 Gtkmm2ext::rounded_right_half_rectangle (cairo_t* cr, double x, double y, double w, double h, double r)
 {