Include gtkmm2ext/gtk_ui.h
[ardour.git] / gtk2_ardour / panner_ui.cc
index d39db280757253772a27dc430a3d25e4cc0f6e6f..142552bb390e371d6b569f4597cead004e1bfecb 100644 (file)
@@ -85,8 +85,11 @@ static const gchar * revdblarrow_xpm[] = {
 PannerUI::PannerUI (IO& io, Session& s)
        : _io (io),
          _session (s),
-         panning_up_arrow (GTK_ARROW_UP, Gtk::SHADOW_OUT),
-         panning_down_arrow (GTK_ARROW_DOWN, Gtk::SHADOW_OUT),
+         hAdjustment(0.0, 0.0, 0.0),
+         vAdjustment(0.0, 0.0, 0.0),
+         panning_viewport(hAdjustment, vAdjustment),
+         panning_up_arrow (Gtk::ARROW_UP, Gtk::SHADOW_OUT),
+         panning_down_arrow (Gtk::ARROW_DOWN, Gtk::SHADOW_OUT),
          panning_link_button (_("link"))
        
 {
@@ -114,9 +117,9 @@ PannerUI::PannerUI (IO& io, Session& s)
           we need a pixmap in the button just to get started.
        */
 
-       panning_link_direction_button.add (*(manage (new Pixmap (forwdblarrow_xpm))));
+       panning_link_direction_button.add (*(manage (new Image (Gdk::Pixbuf::create_from_xpm_data(forwdblarrow_xpm)))));
 
-       panning_link_direction_button.clicked.connect
+       panning_link_direction_button.signal_clicked().connect
                (mem_fun(*this, &PannerUI::panning_link_direction_clicked));
 
        panning_link_button.signal_button_press_event().connect
@@ -134,12 +137,10 @@ PannerUI::PannerUI (IO& io, Session& s)
        panning_down_arrow.set_name (X_("PanScrollerArrow"));
 
        pan_vbox.set_spacing (4);
-       pan_vbox.pack_start (panning_viewport, false, false);
-       pan_vbox.pack_start (panning_link_box, false, false);
+       pan_vbox.pack_start (panning_viewport, Gtk::PACK_SHRINK);
+       pan_vbox.pack_start (panning_link_box, Gtk::PACK_SHRINK);
 
        pack_start (pan_vbox, true, false);
-       pan_vbox.show_all ();
-       show ();
 
        panner = 0;
 
@@ -199,10 +200,10 @@ PannerUI::update_pan_linkage ()
 
        switch (_io.panner().link_direction()) {
        case Panner::SameDirection:
-               static_cast<Pixmap*> (panning_link_direction_button.get_child())->set (forwdblarrow_xpm);
+               panning_link_direction_button.set_image (*(manage (new Image (Gdk::Pixbuf::create_from_xpm_data (forwdblarrow_xpm)))));
                break;
        default:
-               static_cast<Pixmap*> (panning_link_direction_button.get_child())->set (revdblarrow_xpm);
+               panning_link_direction_button.set_image (*(manage (new Image (Gdk::Pixbuf::create_from_xpm_data (revdblarrow_xpm)))));
                break;
        }
 }
@@ -258,17 +259,6 @@ PannerUI::~PannerUI ()
 }
 
 
-gint
-PannerUI::entry_focus_event (GdkEventFocus* ev)
-{
-       if (ev->in) {
-               ARDOUR_UI::instance()->allow_focus (true);
-       } else {
-               ARDOUR_UI::instance()->allow_focus (false);
-       }
-       return TRUE;
-}
-
 void
 PannerUI::panner_changed ()
 {
@@ -319,7 +309,7 @@ PannerUI::setup_pan ()
                        _io.panner()[asz]->get_position (x);
 
                        pan_adjustments.push_back (new Adjustment (x, 0, 1.0, 0.05, 0.1));
-                       pan_adjustments.back()->value_changed.connect (bind (mem_fun(*this, &PannerUI::pan_adjustment_changed), (uint32_t) asz));
+                       pan_adjustments.back()->signal_value_changed().connect (bind (mem_fun(*this, &PannerUI::pan_adjustment_changed), (uint32_t) asz));
 
                        _io.panner()[asz]->Changed.connect (bind (mem_fun(*this, &PannerUI::pan_value_changed), (uint32_t) asz));
 
@@ -332,10 +322,8 @@ PannerUI::setup_pan ()
                        }
                        
                        bc->set_name ("PanSlider");
-                       bc->set_shadow_type (GTK_SHADOW_NONE);
+                       bc->set_shadow_type (Gtk::SHADOW_NONE);
                        bc->set_style (BarController::Line);
-                       bc->get_spin_button().signal_focus_in_event()().connect (mem_fun(*this, &PannerUI::entry_focus_event));
-                       bc->get_spin_button().signal_focus_out_event()().connect (mem_fun(*this, &PannerUI::entry_focus_event));
 
                        bc->StartGesture.connect (bind (mem_fun (_io, &IO::start_pan_touch), (uint32_t) asz));
                        bc->StopGesture.connect (bind (mem_fun (_io, &IO::end_pan_touch), (uint32_t) asz));
@@ -434,17 +422,17 @@ PannerUI::build_pan_menu (uint32_t which)
        
        /* set state first, connect second */
 
-       (dynamic_cast<CheckMenuItem*> (items.back()))->set_active (_io.panner()[which]->muted());
-       (dynamic_cast<CheckMenuItem*> (items.back()))->toggled.connect
+       (dynamic_cast<CheckMenuItem*> (&items.back()))->set_active (_io.panner()[which]->muted());
+       (dynamic_cast<CheckMenuItem*> (&items.back()))->signal_toggled().connect
                (bind (mem_fun(*this, &PannerUI::pan_mute), which));
 
        items.push_back (CheckMenuElem (_("Bypass"), mem_fun(*this, &PannerUI::pan_bypass_toggle)));
-       bypass_menu_item = static_cast<CheckMenuItem*> (items.back());
+       bypass_menu_item = static_cast<CheckMenuItem*> (&items.back());
 
        /* set state first, connect second */
 
        bypass_menu_item->set_active (_io.panner().bypassed());
-       bypass_menu_item->toggled.connect (mem_fun(*this, &PannerUI::pan_bypass_toggle));
+       bypass_menu_item->signal_toggled().connect (mem_fun(*this, &PannerUI::pan_bypass_toggle));
 
        items.push_back (MenuElem (_("Reset"), mem_fun(*this, &PannerUI::pan_reset)));
        items.push_back (SeparatorElem());