From 04ad07babf4639b598470c5946cfb0176d89bcc4 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 9 Jan 2014 20:48:04 +0100 Subject: [PATCH] add [missing] left_half_rectangle util --- libs/gtkmm2ext/gtkmm2ext/utils.h | 2 ++ libs/gtkmm2ext/utils.cc | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h index 0bde3cb562..aac1973f96 100644 --- a/libs/gtkmm2ext/gtkmm2ext/utils.h +++ b/libs/gtkmm2ext/gtkmm2ext/utils.h @@ -102,6 +102,7 @@ namespace Gtkmm2ext { void rounded_top_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); void rounded_bottom_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); void rounded_right_half_rectangle (Cairo::RefPtr, double x, double y, double w, double h, double r=10); + void rounded_left_half_rectangle (Cairo::RefPtr, 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 &); diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index f0a09d5685..1fec597fba 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -415,6 +415,13 @@ Gtkmm2ext::rounded_bottom_half_rectangle (Cairo::RefPtr context, { rounded_bottom_half_rectangle (context->cobj(), x, y, w, h, r); } + +void +Gtkmm2ext::rounded_left_half_rectangle (Cairo::RefPtr 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 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) { -- 2.30.2