permit OSX native package without JACK; prevent excessive track name lengths from messing up JACK port names; splash screen tweaks for OS X; new region gain control operations ; work on AU plugin GUIs (totally incomplete); don't needlessly create prompters in a barcontroller (create on demand)

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2938 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2008-01-18 19:58:34 +00:00
parent 7356c65a2a
commit df1da084ed
25 changed files with 405 additions and 156 deletions

View file

@ -32,13 +32,19 @@ using namespace std;
using namespace PBD;
BindingProxy::BindingProxy (Controllable& c)
: prompter (Gtk::WIN_POS_MOUSE, 30000, false),
: prompter (0),
controllable (c),
bind_button (2),
bind_statemask (Gdk::CONTROL_MASK)
{
prompter.signal_unmap_event().connect (mem_fun (*this, &BindingProxy::prompter_hiding));
}
BindingProxy::~BindingProxy ()
{
if (prompter) {
delete prompter;
}
}
void
@ -61,8 +67,12 @@ BindingProxy::button_press_handler (GdkEventButton *ev)
if ((ev->state & bind_statemask) && ev->button == bind_button) {
if (Controllable::StartLearning (&controllable)) {
string prompt = _("operate controller now");
prompter.set_text (prompt);
prompter.touch (); // shows popup
if (prompter == 0) {
prompter = new PopUp (Gtk::WIN_POS_MOUSE, 30000, false);
prompter->signal_unmap_event().connect (mem_fun (*this, &BindingProxy::prompter_hiding));
}
prompter->set_text (prompt);
prompter->touch (); // shows popup
learning_connection = controllable.LearningFinished.connect (mem_fun (*this, &BindingProxy::learning_finished));
}
return true;
@ -75,7 +85,9 @@ void
BindingProxy::learning_finished ()
{
learning_connection.disconnect ();
prompter.touch (); // hides popup
if (prompter) {
prompter->touch (); // hides popup
}
}