X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fpanner.cc;h=975f1e6b3b66d17fefc36be3dd919af37542a689;hb=b857756f6034f1d9baf4181e824a5166dfd1acc8;hp=89f86b33377a521e62c2fc18fd453a123a9d7854;hpb=9946e615cac53998de4a48c5f1fe061efa6edf1e;p=ardour.git diff --git a/gtk2_ardour/panner.cc b/gtk2_ardour/panner.cc index 89f86b3337..975f1e6b3b 100644 --- a/gtk2_ardour/panner.cc +++ b/gtk2_ardour/panner.cc @@ -1,10 +1,29 @@ +/* + Copyright (C) 2000-2007 Paul Davis + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + #include #include "panner.h" using namespace std; -static const int triangle_size = 7; +static const int triangle_size = 5; static void null_label_callback (char* buf, unsigned int bufsize) @@ -15,7 +34,7 @@ null_label_callback (char* buf, unsigned int bufsize) } -PannerBar::PannerBar (Gtk::Adjustment& adj, PBD::Controllable& c) +PannerBar::PannerBar (Gtk::Adjustment& adj, boost::shared_ptr c) : BarController (adj, c, sigc::ptr_fun (null_label_callback)) { set_style (BarController::Line); @@ -52,20 +71,20 @@ PannerBar::expose (GdkEventExpose* ev) // center - points[0].x = (darea.get_width()/2 - (triangle_size/2)) - 1; + points[0].x = (darea.get_width()/2 - triangle_size); points[0].y = 0; - points[1].x = (darea.get_width()/2 + (triangle_size/2)) - 1; + points[1].x = (darea.get_width()/2 + triangle_size); points[1].y = 0; - points[2].x = darea.get_width()/2 - 1; + points[2].x = darea.get_width()/2; points[2].y = triangle_size - 1; gdk_draw_polygon (win->gobj(), gc->gobj(), true, points, 3); // right - points[0].x = (darea.get_width() - triangle_size) - 1; + points[0].x = (darea.get_width() - triangle_size); points[0].y = 0; points[1].x = darea.get_width(); @@ -84,12 +103,12 @@ PannerBar::button_press (GdkEventButton* ev) { if (ev->button == 1 && ev->type == GDK_BUTTON_PRESS && ev->y < 10) { if (ev->x < triangle_size) { - return true; + adjustment.set_value (adjustment.get_lower()); } else if (ev->x > (darea.get_width() - triangle_size)) { - return true; + adjustment.set_value (adjustment.get_upper()); } else if (ev->x > (darea.get_width()/2 - triangle_size) && ev->x < (darea.get_width()/2 + triangle_size)) { - return true; + adjustment.set_value (adjustment.get_lower() + ((adjustment.get_upper() - adjustment.get_lower()) / 2.0)); } } @@ -99,20 +118,6 @@ PannerBar::button_press (GdkEventButton* ev) bool PannerBar::button_release (GdkEventButton* ev) { - if (ev->button == 1 && ev->type == GDK_BUTTON_RELEASE && ev->y < 10) { - if (ev->x < triangle_size) { - adjustment.set_value (adjustment.get_lower()); - return true; - } else if (ev->x > (darea.get_width() - triangle_size)) { - adjustment.set_value (adjustment.get_upper()); - return true; - } else if (ev->x > (darea.get_width()/2 - triangle_size) && - ev->x < (darea.get_width()/2 + triangle_size)) { - adjustment.set_value (adjustment.get_lower() + ((adjustment.get_upper() - adjustment.get_lower()) / 2.0)); - return true; - } - } - return BarController::button_release (ev); }