Re-synced and fixed doi.h.
authorTaybin Rutkin <taybin@taybin.com>
Sun, 25 Sep 2005 17:29:50 +0000 (17:29 +0000)
committerTaybin Rutkin <taybin@taybin.com>
Sun, 25 Sep 2005 17:29:50 +0000 (17:29 +0000)
git-svn-id: svn://localhost/trunk/ardour2@23 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/gtkmm2ext/SConscript
libs/gtkmm2ext/auto_spin.cc
libs/gtkmm2ext/choice.cc
libs/gtkmm2ext/click_box.cc
libs/gtkmm2ext/gtkmm2ext/auto_spin.h
libs/gtkmm2ext/gtkmm2ext/click_box.h
libs/gtkmm2ext/gtkmm2ext/doi.h
libs/gtkmm2ext/gtkmm2ext/stop_signal.h
libs/gtkmm2ext/pixscroller.cc

index e3ba3f1fcdfa32a55884c403cdbdce56de011d2c..3d30ed1a24b82aa437b16878d41dc6c413459cfd 100644 (file)
@@ -25,7 +25,7 @@ gtkmm2ext.Merge ([
 
 domain = 'libgtkmm2ext'
 
-gtkmm2ext.Append(DOMAIN=domain,MAJOR=0,MINOR=8,MICRO=0)
+gtkmm2ext.Append(DOMAIN=domain,MAJOR=0,MINOR=8,MICRO=1)
 gtkmm2ext.Append(CXXFLAGS="-DPACKAGE=\\\"" + domain + "\\\"")
 gtkmm2ext.Append(CCFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
 gtkmm2ext.Append(PACKAGE=domain)
index 0830eca77e6a61232fd426d43fdb63dc87122f67..ba2a3cf76e71e3c7309b2fc090a1b945b38f8f33 100644 (file)
@@ -33,7 +33,7 @@ const unsigned int AutoSpin::initial_timer_interval = 500;   /* msecs */
 const unsigned int AutoSpin::timer_interval = 20;            /* msecs */
 const unsigned int AutoSpin::climb_timer_calls = 5;    /* between climbing */
 
-AutoSpin::AutoSpin (Gtk::Adjustment &adjr, gfloat cr) 
+AutoSpin::AutoSpin (Gtk::Adjustment &adjr, gfloat cr, bool round_to_steps_yn
        : adjustment (adjr),
          climb_rate (cr)
 
@@ -44,6 +44,7 @@ AutoSpin::AutoSpin (Gtk::Adjustment &adjr, gfloat cr)
        have_timer = false;
        need_timer = false;
        timer_calls = 0;
+       round_to_steps = round_to_steps_yn;
 }
 
 void
@@ -164,7 +165,10 @@ AutoSpin::_timer (void *arg)
 void
 AutoSpin::set_value (gfloat value)
 {
-       adjustment.set_value (value);
+       if (round_to_steps)
+               adjustment.set_value (floor((value / step_increment) + 0.5f) * step_increment);
+       else
+               adjustment.set_value (value);
 }
 
 bool
@@ -193,7 +197,7 @@ AutoSpin::adjust_value (gfloat increment)
                }
        }
 
-       adjustment.set_value (val);
+       set_value(val);
        return done;
 }
 
@@ -253,6 +257,8 @@ AutoSpin::set_bounds (gfloat init, gfloat up, gfloat down, bool with_reset)
 {
        adjustment.set_upper(up);
        adjustment.set_lower(down);
+
+       initial = init;
        
        adjustment.changed ();
        
index 5a3b7d014062659a1b5b24661e00697bc0aea89c..03bfd924dcb806a6d47c68b816115b04494cf8fc 100644 (file)
@@ -33,7 +33,7 @@ Choice::Choice (string prompt,
        int n;
        vector<string>::iterator i;
 
-       set_position (WIN_POS_MOUSE);
+       set_position (Gtk::WIN_POS_CENTER);
        set_name ("ChoiceWindow");
        add (packer);
        
index 6bd03282eb11804d4c71f51f9bd8477c155214d2..ca8d7f725fdf42412f31226d0ec92c56bb7bc58f 100644 (file)
@@ -29,8 +29,8 @@ using namespace Gtk;
 using namespace Gtkmm2ext;
 using namespace sigc;
 
-ClickBox::ClickBox (Gtk::Adjustment *adjp, const string &name)
-       : AutoSpin (*adjp)
+ClickBox::ClickBox (Gtk::Adjustment *adjp, const string &name, bool round_to_steps)
+       : AutoSpin (*adjp,0,round_to_steps)
 {
        print_func = default_printer;
        print_arg = 0;
@@ -68,9 +68,8 @@ ClickBox::button_release_handler (GdkEventButton* ev)
        case 2:
        case 3:
                stop_spinning (0);
-               remove_modal_grab();
-               break;
        default:
+               remove_modal_grab();
                break;
        }
        return true;
index 41d83373cedf7f067cd9af634767387b8d635e4c..68da2249a05ff4998cb2fce8307ca4364aabafef 100644 (file)
@@ -29,7 +29,7 @@ class AutoSpin
 
 {
   public:
-       AutoSpin (Gtk::Adjustment &adj, gfloat cr = 0);
+       AutoSpin (Gtk::Adjustment &adj, gfloat cr = 0, bool round_to_steps_yn = false);
 
        Gtk::Adjustment &get_adjustment() { return adjustment; }
 
@@ -54,6 +54,7 @@ class AutoSpin
        bool wrap;
        gint timeout_tag;
        bool left_is_decrement;
+       bool round_to_steps;
 
        static const unsigned int initial_timer_interval;
        static const unsigned int timer_interval;
index cc35afb6e154fd46669ccbeaec6a2b2959a066e8..4f1ef5ca6b41d1155b3d2e5d3c5933ea3f9b4a0e 100644 (file)
@@ -31,7 +31,7 @@ namespace Gtkmm2ext {
 class ClickBox : public Gtk::DrawingArea, public AutoSpin
 {
   public:
-       ClickBox (Gtk::Adjustment *adj, const std::string &name);
+       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 *),
index f804c8a090a4ab555db0b37826dbd78f7c6e1f8b..16a9a6549c2c899babed42eb1cdf305b31b54691 100644 (file)
 
 /* XXX g++ 2.95 can't compile this as pair of member function templates */
 
-template<class T> gint idle_delete (T *obj) { delete obj; return FALSE; }
-template<class T> void delete_when_idle (T *obj) {
-       Gtk::Main::idle.connect (sigc::bind (sigc::slot (idle_delete<T>), obj));
+template<typename T> gint idle_delete (T *obj) { delete obj; return FALSE; }
+template<typename T> void delete_when_idle (T *obj) {
+       Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete<T>), obj));
 }
-template<class T> gint delete_on_unmap (GdkEventAny *ignored, T *obj) {
-       Gtk::Main::idle.connect (sigc::bind (sigc::slot (idle_delete<T>), obj));
+template<typename T> gint delete_on_unmap (GdkEventAny *ignored, T *obj) {
+       Glib::signal_idle().connect (sigc::bind (sigc::ptr_fun (idle_delete<T>), obj));
        return FALSE;
 }
 
index 2890efecfb17d6038c6fb75579fc1808431c1419..9c191a033e204efbd284efbff753bc7716efc14a 100644 (file)
@@ -1,13 +1,13 @@
 #ifndef __ardour_gtk_stop_signal_h__
 #define __ardour_gtk_stop_signal_h__
 
-#include <gtk--/widget.h>
+#include <gtkmm.h>
 #include <gtk/gtksignal.h>
 
 static inline gint
 stop_signal (Gtk::Widget& widget, const char *signal_name)
 {
-       gtk_signal_emit_stop_by_name (GTK_OBJECT(widget.gtkobj()), signal_name);
+       gtk_signal_emit_stop_by_name (GTK_OBJECT(widget.gobj()), signal_name);
        return TRUE;
 }
 
index 78f1725271645b37ee210534fc9b33d9f6e7dd4f..556fce80802022c38adce0ee8d601aff9f535546 100644 (file)
@@ -60,7 +60,7 @@ PixScroller::PixScroller (Adjustment& a, Pix& pix)
        overall_height = railrect.get_height() + sliderrect.get_height();
 
        sliderrect.set_y((int) rint ((overall_height - sliderrect.get_height()) * (adj.get_upper() - adj.get_value())));
-       railrect.set_x((sliderrect.get_width() / 2) - 3);
+       railrect.set_x((sliderrect.get_width() / 2) - 2);
 }
 
 void