summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-11-30 03:09:15 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-11-30 03:09:15 +0000
commit4f7a3d773287b58511732e291c40fdadd171caa1 (patch)
treec109a21d2c9b5bb79801ec6ab6ce6f9c0b0878f9 /libs
parentea8f9cb58e47729195faa066c591c7e8fdb43f11 (diff)
make BarController::CenterOut mostly sorta-kinda work
git-svn-id: svn://localhost/ardour2/branches/3.0@8129 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/gtkmm2ext/barcontroller.cc18
1 files changed, 17 insertions, 1 deletions
diff --git a/libs/gtkmm2ext/barcontroller.cc b/libs/gtkmm2ext/barcontroller.cc
index 1b8c210fc9..5c0d444be7 100644
--- a/libs/gtkmm2ext/barcontroller.cc
+++ b/libs/gtkmm2ext/barcontroller.cc
@@ -248,12 +248,12 @@ BarController::mouse_control (double x, GdkWindow* window, double scaling)
switch (_style) {
case Line:
case LeftToRight:
+ case CenterOut:
fract = scaling * (delta / (darea.get_width() - 2));
fract = min (1.0, fract);
fract = max (-1.0, fract);
adjustment.set_value (adjustment.get_value() + fract * (adjustment.get_upper() - adjustment.get_lower()));
break;
-
default:
fract = 0.0;
}
@@ -303,6 +303,22 @@ BarController::expose (GdkEventExpose* /*event*/)
break;
case CenterOut:
+ w = darea.get_width();
+ h = darea.get_height()-2;
+ if (use_parent) {
+ parent = get_parent();
+ if (parent) {
+ win->draw_rectangle (parent->get_style()->get_fg_gc (parent->get_state()),
+ true,
+ 0, 0, darea.get_width(), darea.get_height());
+ } else {
+ win->draw_rectangle (parent->get_style()->get_bg_gc (parent->get_state()),
+ true,
+ 0, 0, darea.get_width(), darea.get_height());
+ }
+ }
+ x1 = (w/2) - ((w*fract)/2); // center, back up half the bar width
+ win->draw_rectangle (get_style()->get_fg_gc (get_state()), true, x1, 1, w*fract, h);
break;
case LeftToRight: