show values on faders (fixes bug in 55c6165)

This commit is contained in:
Robin Gareus 2014-11-29 14:49:03 +01:00
parent 58663db374
commit 48bb90eb88
2 changed files with 35 additions and 10 deletions

View File

@ -40,6 +40,27 @@
using namespace ARDOUR;
using namespace Gtk;
AutomationBarController::AutomationBarController (
boost::shared_ptr<Automatable> printer,
boost::shared_ptr<AutomationControl> ac,
Adjustment* adj)
: Gtkmm2ext::BarController(*adj, ac)
, _printer(printer)
, _controllable(ac)
{
}
std::string
AutomationBarController::get_label (double& xpos)
{
xpos = 0.5;
return _printer->value_as_string (_controllable);
}
AutomationBarController::~AutomationBarController()
{
}
AutomationController::AutomationController(boost::shared_ptr<Automatable> printer,
boost::shared_ptr<AutomationControl> ac,
Adjustment* adj)
@ -67,7 +88,7 @@ AutomationController::AutomationController(boost::shared_ptr<Automatable>
_widget = but;
} else {
Gtkmm2ext::BarController* bar = manage(new Gtkmm2ext::BarController(*adj, ac));
AutomationBarController* bar = manage(new AutomationBarController(_printer, ac, adj));
bar->set_name(X_("ProcessorControlSlider"));
bar->StartGesture.connect(
@ -124,13 +145,6 @@ AutomationController::create(boost::shared_ptr<Automatable> printer,
return boost::shared_ptr<AutomationController>(new AutomationController(printer, ac, adjustment));
}
std::string
AutomationController::get_label (double& xpos)
{
xpos = 0.5;
return _printer->value_as_string (_controllable);
}
void
AutomationController::display_effective_value()
{
@ -314,7 +328,7 @@ AutomationController::stop_updating ()
void
AutomationController::disable_vertical_scroll ()
{
Gtkmm2ext::BarController* bar = dynamic_cast<Gtkmm2ext::BarController*>(_widget);
AutomationBarController* bar = dynamic_cast<AutomationBarController*>(_widget);
if (bar) {
bar->set_tweaks (
Gtkmm2ext::PixFader::Tweaks(bar->tweaks() |

View File

@ -42,6 +42,18 @@ namespace ARDOUR {
class Automatable;
}
class AutomationBarController : public Gtkmm2ext::BarController {
public:
AutomationBarController(boost::shared_ptr<ARDOUR::Automatable> printer,
boost::shared_ptr<ARDOUR::AutomationControl> ac,
Gtk::Adjustment* adj);
~AutomationBarController();
private:
std::string get_label (double&);
boost::shared_ptr<ARDOUR::Automatable> _printer;
boost::shared_ptr<ARDOUR::AutomationControl> _controllable;
};
/** A BarController which displays the value and allows control of an AutomationControl */
class AutomationController : public Gtk::Alignment {
public:
@ -72,7 +84,6 @@ private:
AutomationController (boost::shared_ptr<ARDOUR::Automatable> printer,
boost::shared_ptr<ARDOUR::AutomationControl> ac,
Gtk::Adjustment* adj);
std::string get_label (double&);
void start_touch();
void end_touch();