gtkmm2ext: provide an additional ink extents method to get descender

This commit is contained in:
Paul Davis 2023-07-01 21:06:38 -06:00
parent d899441df1
commit 3be6ae57ba
2 changed files with 20 additions and 4 deletions

View File

@ -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<Pango::Layout>,
int& width, int& height);
LIBGTKMM2EXT_API void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>, int& width, int& height);
LIBGTKMM2EXT_API void get_ink_pixel_size_with_descent (Glib::RefPtr<Pango::Layout>, int& width, int& height, int& descent);
LIBGTKMM2EXT_API void set_size_request_to_display_given_text (Gtk::Widget& w,
std::string const& text,

View File

@ -57,14 +57,31 @@ Gtkmm2ext::init (const char* localedir)
void
Gtkmm2ext::get_ink_pixel_size (Glib::RefPtr<Pango::Layout> 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<Pango::Layout> 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<Gtk::Style> const& sty, Gtk::Widget* w, std::string const& text,
gint hpadding, gint vpadding)