+/** Set width request to display given text, and height to display anything.
+ This is useful for setting many widgets to the same height for consistency. */
+void
+Gtkmm2ext::set_size_request_to_display_given_text_width (Gtk::Widget& w,
+ const gchar* htext,
+ gint hpadding,
+ gint vpadding)
+{
+ static const gchar* vtext = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ w.ensure_style ();
+
+ int hwidth, hheight;
+ get_pixel_size (w.create_pango_layout (htext), hwidth, hheight);
+
+ int vwidth, vheight;
+ get_pixel_size (w.create_pango_layout (vtext), vwidth, vheight);
+
+ w.set_size_request(hwidth + hpadding, vheight + vpadding);
+}
+
+void
+Gtkmm2ext::set_height_request_to_display_any_text (Gtk::Widget& w, gint vpadding)
+{
+ static const gchar* vtext = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ w.ensure_style ();
+
+ int width, height;
+ get_pixel_size (w.create_pango_layout (vtext), width, height);
+
+ w.set_size_request(-1, height + vpadding);
+}
+
+void
+Gtkmm2ext::set_size_request_to_display_given_text (Gtk::Widget &w, std::string const & text,
+ gint hpadding, gint vpadding)
+{
+ int width, height;
+ w.ensure_style ();
+
+ get_pixel_size (w.create_pango_layout (text), width, height);
+ w.set_size_request(width + hpadding, height + vpadding);
+}
+