rollback to 3428, before the mysterious removal of libs/* at 3431/3432
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / pixfader.h
index 4d0edc46b7c0a6b1e2ebf104592c6043a8247082..519e1c9e1e6acf657d1f77a33c4b300d9657c26c 100644 (file)
@@ -15,7 +15,6 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: fastmeter.h 570 2006-06-07 21:21:21Z sampo $
 */
 
 #ifndef __gtkmm2ext_pixfader_h__
@@ -31,9 +30,7 @@ namespace Gtkmm2ext {
 
 class PixFader : public Gtk::DrawingArea {
   public:
-       PixFader (Glib::RefPtr<Gdk::Pixbuf> base, 
-                 Glib::RefPtr<Gdk::Pixbuf> handle,
-                 Gtk::Adjustment& adjustment);
+       PixFader (Glib::RefPtr<Gdk::Pixbuf> belt_image, Gtk::Adjustment& adjustment, int orientation);
        virtual ~PixFader ();
        
   protected:
@@ -47,26 +44,32 @@ class PixFader : public Gtk::DrawingArea {
        bool on_motion_notify_event (GdkEventMotion*);
        bool on_scroll_event (GdkEventScroll* ev);
 
-  private:  
-       Glib::RefPtr<Gdk::Pixbuf> base_pixbuf;
-       Glib::RefPtr<Gdk::Pixbuf> handle_pixbuf;
-       gint pixheight;
+       enum Orientation {
+               VERT=1,
+               HORIZ=2,
+       };
 
-       GdkRectangle pixrect;
+  private:
+       Glib::RefPtr<Gdk::Pixbuf> pixbuf;
+       int span, girth;
+       int _orien;
+
+       GdkRectangle view;
 
        GdkWindow* grab_window;
-       double grab_y;
+       double grab_loc;
        double grab_start;
        int last_drawn;
        bool dragging;
        float default_value;
-       int unity_y;
+       int unity_loc;
 
        void adjustment_changed ();
 
-       int display_height () {
-               return (int) floor (pixheight * (1.0 - (adjustment.get_upper() - adjustment.get_value ()) / ((adjustment.get_upper() - adjustment.get_lower()))));
-       }
+       int display_span ();
+
+       static int fine_scale_modifier;
+       static int extra_fine_scale_modifier;
 };