summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-03-06 16:19:26 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-03-06 16:19:26 +0000
commit2d381d23d3dcfbe5372b14053aa8869043b75138 (patch)
treefe1b6a358c66c1ed817227e435507861530e3a3a /libs
parent1bc375d48cc62b81225901eae0b470b80b31af17 (diff)
combobox width fixes from mtaht
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4741 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/utils.h13
-rw-r--r--libs/gtkmm2ext/utils.cc20
2 files changed, 30 insertions, 3 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h
index ca1b88abba..e664f2420d 100644
--- a/libs/gtkmm2ext/gtkmm2ext/utils.h
+++ b/libs/gtkmm2ext/gtkmm2ext/utils.h
@@ -36,15 +36,22 @@ namespace Gtk {
namespace Gtkmm2ext {
void init ();
- void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>, int& width, int& height);
+ void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>,
+ int& width, int& height);
void set_size_request_to_display_given_text (Gtk::Widget &w,
const gchar *text,
gint hpadding,
gint vpadding);
- void set_popdown_strings (Gtk::ComboBoxText&, const std::vector<std::string>&);
-
+ void set_size_request_to_display_given_text (Gtk::Widget &w,
+ const std::vector<std::string>&,
+ gint hpadding,
+ gint vpadding);
+
+ void set_popdown_strings (Gtk::ComboBoxText&,
+ const std::vector<std::string>&);
+
template<class T> void deferred_delete (void *ptr) {
delete static_cast<T *> (ptr);
}
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index bae046bc46..20c7890162 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -59,6 +59,26 @@ Gtkmm2ext::set_size_request_to_display_given_text (Gtk::Widget &w, const gchar *
}
void
+Gtkmm2ext::set_size_request_to_display_given_text (Gtk::Widget &w,
+ const std::vector<std::string>& strings,
+ gint hpadding, gint vpadding)
+
+{
+ int width, height;
+ int width_max = 0;
+ int height_max = 0;
+ w.ensure_style ();
+
+ for (vector<string>::const_iterator i = strings.begin();
+ i != strings.end(); ++i) {
+ get_ink_pixel_size (w.create_pango_layout (*i), width, height);
+ width_max = max(width_max,width);
+ height_max = max(height_max, height);
+ }
+ w.set_size_request(width_max + hpadding, height_max + vpadding);
+}
+
+void
Gtkmm2ext::init ()
{
// Necessary for gettext