diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-03-14 20:51:55 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-03-14 20:51:55 +0000 |
commit | 8d3fdc3c5b87f6d1444830d82f28d18a2201afea (patch) | |
tree | f4fc9893bbb92d5d7b2fc3c5321db4bb6ffa0635 /libs/gtkmm2ext/pixscroller.cc | |
parent | e72e0caf9949be20b3d5416648a902ab3fe9c588 (diff) |
fix problems with pixmaps/xpm files
git-svn-id: svn://localhost/trunk/ardour2@392 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/gtkmm2ext/pixscroller.cc')
-rw-r--r-- | libs/gtkmm2ext/pixscroller.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/libs/gtkmm2ext/pixscroller.cc b/libs/gtkmm2ext/pixscroller.cc index 9489a532ca..95861fd930 100644 --- a/libs/gtkmm2ext/pixscroller.cc +++ b/libs/gtkmm2ext/pixscroller.cc @@ -29,8 +29,9 @@ using namespace std; using namespace Gtk; using namespace Gtkmm2ext; -PixScroller::PixScroller (Adjustment& a, Pix& pix) - : adj (a) +PixScroller::PixScroller (Adjustment& a, Pix& p) + : adj (a), + pix (p) { dragging = false; add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::POINTER_MOTION_MASK|Gdk::SCROLL_MASK); @@ -38,7 +39,16 @@ PixScroller::PixScroller (Adjustment& a, Pix& pix) adj.signal_value_changed().connect (mem_fun (*this, &PixScroller::adjustment_changed)); default_value = adj.get_value(); - pix.generate (); +} + +void +PixScroller::on_realize () +{ + DrawingArea::on_realize (); + + Glib::RefPtr<Gdk::Drawable> drawable = Glib::RefPtr<Gdk::Window>::cast_dynamic (get_window()); + + pix.generate (drawable); rail = *(pix.pixmap (0)); rail_mask = *(pix.shape_mask (0)); @@ -61,6 +71,8 @@ PixScroller::PixScroller (Adjustment& a, Pix& pix) sliderrect.set_y((int) rint ((overall_height - sliderrect.get_height()) * (adj.get_upper() - adj.get_value()))); railrect.set_x((sliderrect.get_width() / 2) - 2); + + set_size_request (sliderrect.get_width(), overall_height); } void |