#include <ardour/io.h>
#include <ardour/dB.h>
-#include <gtkmmext/utils.h>
-#include <gtkmmext/stop_signal.h>
-#include <gtkmmext/barcontroller.h>
+#include <gtkmm2ext/utils.h>
+#include <gtkmm2ext/stop_signal.h>
+#include <gtkmm2ext/barcontroller.h>
#include <midi++/manager.h>
#include <pbd/fastlog.h>
#include "i18n.h"
using namespace ARDOUR;
-using namespace Gtkmmext;
+using namespace Gtkmm2ext;
using namespace Gtk;
-using namespace SigC;
+using namespace sigc;
/* XPM */
static const gchar * forwdblarrow_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"))
{
pan_menu = 0;
in_pan_update = false;
- pan_bar_packer.set_usize (-1, 61);
- panning_viewport.set_usize (61, 61);
+ pan_bar_packer.set_size_request (-1, 61);
+ panning_viewport.set_size_request (61, 61);
panning_viewport.set_name (X_("BaseFrame"));
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
- (slot (*this, &PannerUI::panning_link_direction_clicked));
+ panning_link_direction_button.signal_clicked().connect
+ (mem_fun(*this, &PannerUI::panning_link_direction_clicked));
- panning_link_button.button_press_event.connect
- (slot (*this, &PannerUI::panning_link_button_press));
- panning_link_button.button_release_event.connect
- (slot (*this, &PannerUI::panning_link_button_release));
+ panning_link_button.signal_button_press_event().connect
+ (mem_fun(*this, &PannerUI::panning_link_button_press));
+ panning_link_button.signal_button_release_event().connect
+ (mem_fun(*this, &PannerUI::panning_link_button_release));
panning_up.set_border_width (3);
panning_down.set_border_width (3);
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;
- _io.panner().Changed.connect (slot (*this, &PannerUI::panner_changed));
- _io.panner().LinkStateChanged.connect (slot (*this, &PannerUI::update_pan_linkage));
- _io.panner().StateChanged.connect (slot (*this, &PannerUI::update_pan_state));
+ _io.panner().Changed.connect (mem_fun(*this, &PannerUI::panner_changed));
+ _io.panner().LinkStateChanged.connect (mem_fun(*this, &PannerUI::update_pan_linkage));
+ _io.panner().StateChanged.connect (mem_fun(*this, &PannerUI::update_pan_state));
pan_changed (0);
update_pan_sensitive ();
void
PannerUI::update_pan_linkage ()
{
- ENSURE_GUI_THREAD(slot (*this, &PannerUI::update_pan_linkage));
+ ENSURE_GUI_THREAD(mem_fun(*this, &PannerUI::update_pan_linkage));
bool x = _io.panner().linked();
bool bx = panning_link_button.get_active();
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;
}
}
{
switch (w) {
case Wide:
- panning_viewport.set_usize (61, 61);
+ panning_viewport.set_size_request (61, 61);
if (panner) {
- panner->set_usize (61, 61);
+ panner->set_size_request (61, 61);
}
for (vector<BarController*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- (*i)->set_usize (61, 15);
+ (*i)->set_size_request (61, 15);
}
static_cast<Gtk::Label*> (panning_link_button.get_child())->set_text (_("link"));
break;
case Narrow:
- panning_viewport.set_usize (31, 61);
+ panning_viewport.set_size_request (31, 61);
if (panner) {
- panner->set_usize (31, 61);
+ panner->set_size_request (31, 61);
}
for (vector<BarController*>::iterator i = pan_bars.begin(); i != pan_bars.end(); ++i) {
- (*i)->set_usize (31, 15);
+ (*i)->set_size_request (31, 15);
}
static_cast<Gtk::Label*> (panning_link_button.get_child())->set_text (_("L"));
break;
}
-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 ()
{
- ENSURE_GUI_THREAD (slot (*this, &PannerUI::panner_changed));
+ ENSURE_GUI_THREAD (mem_fun(*this, &PannerUI::panner_changed));
setup_pan ();
}
PannerUI::update_pan_state ()
{
/* currently nothing to do */
- // ENSURE_GUI_THREAD (slot (*this, &PannerUI::update_panner_state));
+ // ENSURE_GUI_THREAD (mem_fun(*this, &PannerUI::update_panner_state));
}
void
_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 (slot (*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 (slot (*this, &PannerUI::pan_value_changed), (uint32_t) asz));
+ _io.panner()[asz]->Changed.connect (bind (mem_fun(*this, &PannerUI::pan_value_changed), (uint32_t) asz));
bc = new BarController (*pan_adjustments[asz],
&_io.panner()[asz]->midi_control(),
- bind (slot (*this, &PannerUI::pan_printer), pan_adjustments[asz]));
+ bind (mem_fun(*this, &PannerUI::pan_printer), pan_adjustments[asz]));
if (_session.midi_port()) {
_io.panner()[asz]->reset_midi_control (_session.midi_port(), true);
}
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().focus_in_event.connect (slot (*this, &PannerUI::entry_focus_event));
- bc->get_spin_button().focus_out_event.connect (slot (*this, &PannerUI::entry_focus_event));
- bc->StartGesture.connect (bind (slot (_io, &IO::start_pan_touch), (uint32_t) asz));
- bc->StopGesture.connect (bind (slot (_io, &IO::end_pan_touch), (uint32_t) asz));
+ 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));
char buf[64];
snprintf (buf, sizeof (buf), _("panner for channel %u"), asz + 1);
ARDOUR_UI::instance()->tooltips().set_tip (bc->event_widget(), buf);
- bc->event_widget().button_release_event.connect
- (bind (slot (*this, &PannerUI::pan_button_event), (uint32_t) asz));
+ bc->event_widget().signal_button_release_event().connect
+ (bind (mem_fun(*this, &PannerUI::pan_button_event), (uint32_t) asz));
pan_bars.push_back (bc);
switch (_width) {
case Wide:
- pan_bars.back()->set_usize (61, 15);
+ pan_bars.back()->set_size_request (61, 15);
break;
case Narrow:
- pan_bars.back()->set_usize (31, 15);
+ pan_bars.back()->set_size_request (31, 15);
break;
}
update_pan_sensitive ();
panner->reset (_io.n_inputs());
- panner->set_usize (w, 61);
+ panner->set_size_request (w, 61);
/* and finally, add it to the panner frame */
/* set state first, connect second */
- (dynamic_cast<CheckMenuItem*> (items.back()))->set_active (_io.panner()[which]->muted());
- (dynamic_cast<CheckMenuItem*> (items.back()))->toggled.connect
- (bind (slot (*this, &PannerUI::pan_mute), which));
+ (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"), slot (*this, &PannerUI::pan_bypass_toggle)));
- bypass_menu_item = static_cast<CheckMenuItem*> (items.back());
+ items.push_back (CheckMenuElem (_("Bypass"), mem_fun(*this, &PannerUI::pan_bypass_toggle)));
+ 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 (slot (*this, &PannerUI::pan_bypass_toggle));
+ bypass_menu_item->signal_toggled().connect (mem_fun(*this, &PannerUI::pan_bypass_toggle));
- items.push_back (MenuElem (_("Reset"), slot (*this, &PannerUI::pan_reset)));
+ items.push_back (MenuElem (_("Reset"), mem_fun(*this, &PannerUI::pan_reset)));
items.push_back (SeparatorElem());
items.push_back (MenuElem (_("Reset all")));
}
void
PannerUI::pan_value_changed (uint32_t which)
{
- ENSURE_GUI_THREAD (bind (slot (*this, &PannerUI::pan_value_changed), which));
+ ENSURE_GUI_THREAD (bind (mem_fun(*this, &PannerUI::pan_value_changed), which));
if (which < _io.panner().size()) {
float xpos;