summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/pixscroller.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-03-14 20:51:55 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-03-14 20:51:55 +0000
commit8d3fdc3c5b87f6d1444830d82f28d18a2201afea (patch)
treef4fc9893bbb92d5d7b2fc3c5321db4bb6ffa0635 /libs/gtkmm2ext/pixscroller.cc
parente72e0caf9949be20b3d5416648a902ab3fe9c588 (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.cc18
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