more changes flowing from a persistent MonitorSection object
[ardour.git] / gtk2_ardour / panner2d.h
index 60534d04c6b952b3f39db1abbb5f98cb93b7e5b5..f3077187aba4b38c3431a1c1e3a36d467a3aba6b 100644 (file)
@@ -46,7 +46,7 @@ namespace Gtk {
 }
 
 namespace Pango {
-       class Layout;
+       class Container;
 }
 
 class Panner2dWindow;
@@ -63,6 +63,7 @@ class Panner2d : public Gtk::DrawingArea
        int  add_signal (const char* text, const PBD::AngularVector&);
        void move_signal (int which, const PBD::AngularVector&);
        void reset (uint32_t n_inputs);
+       void set_send_drawing_mode (bool);
 
        boost::shared_ptr<ARDOUR::PannerShell> get_panner_shell() const { return panner_shell; }
 
@@ -99,6 +100,26 @@ class Panner2d : public Gtk::DrawingArea
                bool _selected;
        };
 
+       struct ColorScheme {
+               uint32_t background;
+               uint32_t crosshairs;
+               uint32_t signalcircle_border;
+               uint32_t signalcircle;
+               uint32_t diffusion;
+               uint32_t diffusion_inv;
+               uint32_t pos_outline;
+               uint32_t pos_fill;
+               uint32_t signal_outline;
+               uint32_t signal_fill;
+               uint32_t speaker_fill;
+               uint32_t text;
+       };
+
+       static ColorScheme colors;
+       static void set_colors ();
+       static bool have_colors;
+       void color_handler ();
+
        boost::shared_ptr<ARDOUR::PannerShell> panner_shell;
        Glib::RefPtr<Pango::Layout> layout;
 
@@ -117,6 +138,7 @@ class Panner2d : public Gtk::DrawingArea
        double  last_width;
        bool    did_move;
        bool    have_elevation;
+       bool    _send_mode;
 
        Target *find_closest_object (gdouble x, gdouble y, bool& is_signal);
 
@@ -127,8 +149,8 @@ class Panner2d : public Gtk::DrawingArea
        void handle_position_change ();
        void label_signals ();
 
-       PBD::ScopedConnectionList connections;
-       PBD::ScopedConnectionList panconnect;
+       PBD::ScopedConnectionList panshell_connections;
+       PBD::ScopedConnectionList panner_connections;
 
        /* cartesian coordinates in GTK units ; adjust to same but on a circle of radius 1.0
           and centered in the middle of our area
@@ -156,10 +178,12 @@ class Panner2dWindow : public ArdourWindow
        Gtk::Adjustment   width_adjustment;
        Gtk::SpinButton   width_spinner;
 
-       PBD::ScopedConnectionList connections;
+       PBD::ScopedConnectionList panshell_connections;
+       PBD::ScopedConnectionList panvalue_connections;
        void set_bypassed();
        void set_width();
 
+       void pannable_handler ();
        void bypass_toggled ();
        void width_changed ();
        bool on_key_press_event (GdkEventKey*);