add API to query Gtk::ComboBoxText entries
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / motionfeedback.h
index 0eaf78ed55253c6c24f6ff19554c8ed04bf97a8a..9e051b04b8738fc5bfc76f0f39458323e7b69556 100644 (file)
 
 #include <gdkmm/pixbuf.h>
 #include <gtkmm/box.h>
+#include <gtkmm/label.h>
 #include <gtkmm/eventbox.h>
 
+#include "gtkmm2ext/visibility.h"
 #include "gtkmm2ext/binding_proxy.h"
 #include "gtkmm2ext/prolooks-helpers.h"
 
@@ -36,7 +38,7 @@ namespace Gtk {
 
 namespace Gtkmm2ext {
 
-class MotionFeedback : public Gtk::VBox
+class LIBGTKMM2EXT_API MotionFeedback : public Gtk::VBox
 {
  public:
        enum Type {
@@ -58,12 +60,11 @@ class MotionFeedback : public Gtk::VBox
        virtual ~MotionFeedback ();
 
        Gtk::Widget& eventwin () { return pixwin; }
-        Gtk::Entry&  value_display() const { return *value; }
 
         boost::shared_ptr<PBD::Controllable> controllable() const;
        virtual void set_controllable (boost::shared_ptr<PBD::Controllable> c);
 
-        void set_lamp_color (const Gdk::Color&);
+        static void set_lamp_color (const std::string&);
         
         static Glib::RefPtr<Gdk::Pixbuf> render_pixbuf (int size);
 
@@ -75,7 +76,7 @@ class MotionFeedback : public Gtk::VBox
 
  protected:
        boost::shared_ptr<PBD::Controllable> _controllable;
-       Gtk::Entry* value;
+       Gtk::Label* value;
         double default_value;
        double step_inc;
        double page_inc;
@@ -103,14 +104,15 @@ class MotionFeedback : public Gtk::VBox
        */
        virtual double to_display_value (double) = 0;
        
-       double adjust (double control_value, double display_delta);
+       virtual double adjust (double nominal_delta) = 0;
 
   private:
        Type type;
        Gtk::EventBox      pixwin;
-        Gtk::HBox*         value_packer;
+        Gtk::EventBox*     value_packer;
        Glib::RefPtr<Gdk::Pixbuf> pixbuf;
         BindingProxy       binding_proxy;
+       static Gdk::Color* base_color;
 
        void (*print_func) (char buf[32], const boost::shared_ptr<PBD::Controllable>&, void *);
        void *print_arg;