fix up wscript/build issues in exportvis after merge with master
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / click_box.h
index e4aee36ebebd36be65447e53f6ee92ea8b98a125..8270f2577893a7e937903dd5a519225fc19e7388 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$
 */
 
 #ifndef __gtkmm2ext_click_box_h__
 #include <string>
 #include <gtkmm.h>
 
-#include <gtkmm2ext/auto_spin.h>
+#include "gtkmm2ext/visibility.h"
+#include "gtkmm2ext/auto_spin.h"
 
 namespace Gtkmm2ext {
 
-class ClickBox : public Gtk::DrawingArea, public AutoSpin
+class LIBGTKMM2EXT_API ClickBox : public Gtk::DrawingArea, public AutoSpin
 {
   public:
        ClickBox (Gtk::Adjustment *adj, const std::string &name, bool round_to_steps = false);
        ~ClickBox ();
 
-       void set_print_func(void (*pf)(char buf[32], Gtk::Adjustment &, void *),
-                           void *arg) {
-               print_func = pf;
-               print_arg = arg;
-               set_label ();
-       }
-
+       /** Set a slot to `print' the value to put in the box.
+        *  The slot should write the value of the Gtk::Adjustment
+        *  into the char array, and should return true if it has done the printing,
+        *  or false to use the ClickBox's default printing method.
+        */
+       void set_printer (sigc::slot<bool, char *, Gtk::Adjustment &>);
 
   protected:
        bool on_expose_event (GdkEventExpose*);
 
   private:
-       void (*print_func) (char buf[32], Gtk::Adjustment &, void *);
-       void *print_arg;
-
        Glib::RefPtr<Pango::Layout> layout;
        int twidth;
        int theight;
@@ -58,7 +54,7 @@ class ClickBox : public Gtk::DrawingArea, public AutoSpin
        bool button_press_handler (GdkEventButton *);
        bool button_release_handler (GdkEventButton *);
 
-       static void default_printer (char buf[32], Gtk::Adjustment &, void *);
+       sigc::slot<bool, char *, Gtk::Adjustment &> _printer;
 };
 
 } /* namespace */