diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h index 2554fe27ac..317b8c2206 100644 --- a/libs/gtkmm2ext/gtkmm2ext/utils.h +++ b/libs/gtkmm2ext/gtkmm2ext/utils.h @@ -63,9 +63,8 @@ namespace Gtkmm2ext { LIBGTKMM2EXT_API int pixel_width (const std::string& str, const Pango::FontDescription& font); LIBGTKMM2EXT_API void pixel_size (const std::string& str, const Pango::FontDescription& font, int& width, int& height); - LIBGTKMM2EXT_API void get_ink_pixel_size (Glib::RefPtr, - int& width, int& height); - + LIBGTKMM2EXT_API void get_ink_pixel_size (Glib::RefPtr, int& width, int& height); + LIBGTKMM2EXT_API void get_ink_pixel_size_with_descent (Glib::RefPtr, int& width, int& height, int& descent); LIBGTKMM2EXT_API void set_size_request_to_display_given_text (Gtk::Widget& w, std::string const& text, diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index f32ba97800..c2c2432248 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -57,14 +57,31 @@ Gtkmm2ext::init (const char* localedir) void Gtkmm2ext::get_ink_pixel_size (Glib::RefPtr layout, int& width, - int& height) + int& height) { Pango::Rectangle ink_rect = layout->get_ink_extents (); + std::string s = layout->get_text (); + width = PANGO_PIXELS(ink_rect.get_width()); height = PANGO_PIXELS(ink_rect.get_height()); } +void +Gtkmm2ext::get_ink_pixel_size_with_descent (Glib::RefPtr layout, + int& width, + int& height, + int& descent) +{ + Pango::Rectangle ink_rect = layout->get_ink_extents (); + + std::string s = layout->get_text (); + + width = PANGO_PIXELS(ink_rect.get_width()); + height = PANGO_PIXELS(ink_rect.get_height()); + descent = PANGO_PIXELS(ink_rect.get_descent()); +} + static void _set_size_request_to_display_given_text (Glib::RefPtr const& sty, Gtk::Widget* w, std::string const& text, gint hpadding, gint vpadding)