#include "canvas/debug.h"
-#include "ardour_ui.h"
#include "automation_time_axis.h"
#include "automation_streamview.h"
-#include "global_signals.h"
#include "gui_thread.h"
#include "route_time_axis.h"
#include "automation_line.h"
#include "paste_context.h"
#include "public_editor.h"
#include "selection.h"
+#include "tooltips.h"
#include "rgb_macros.h"
#include "point_selection.h"
#include "control_point.h"
#include "utils.h"
#include "item_counts.h"
+#include "ui_config.h"
#include "i18n.h"
tipname += ": ";
}
tipname += nom;
- ARDOUR_UI::instance()->set_tip(controls_ebox, tipname);
+ set_tooltip(controls_ebox, tipname);
//plugin name and param name appear on 2 separate lines in the track header
tipname = nomparent;
}
tipname += nom;
_name = tipname;
-
+
CANVAS_DEBUG_NAME (_canvas_display, string_compose ("main for auto %2/%1", _name, r->name()));
CANVAS_DEBUG_NAME (selection_group, string_compose ("selections for auto %2/%1", _name, r->name()));
CANVAS_DEBUG_NAME (_ghost_group, string_compose ("ghosts for auto %2/%1", _name, r->name()));
CANVAS_DEBUG_NAME (_base_rect, string_compose ("base rect for %1", _name));
_base_rect->set_x1 (ArdourCanvas::COORD_MAX);
_base_rect->set_outline (false);
- _base_rect->set_fill_color (ARDOUR_UI::config()->color_mod (fill_color_name, "automation track fill"));
+ _base_rect->set_fill_color (UIConfiguration::instance().color_mod (fill_color_name, "automation track fill"));
_base_rect->set_data ("trackview", this);
_base_rect->Event.connect (sigc::bind (sigc::mem_fun (_editor, &PublicEditor::canvas_automation_track_event), _base_rect, this));
if (!a) {
controls_table.set_no_show_all();
- ARDOUR_UI::instance()->set_tip(auto_button, _("automation state"));
- ARDOUR_UI::instance()->set_tip(hide_button, _("hide track"));
+ set_tooltip(auto_button, _("automation state"));
+ set_tooltip(hide_button, _("hide track"));
const string str = gui_property ("height");
if (!str.empty()) {
}
//name label isn't editable on an automation track; remove the tooltip
- ARDOUR_UI::instance()->set_tip (name_label, X_(""));
+ set_tooltip (name_label, X_(""));
/* repack the name label */
if (name_label.get_parent()) {
name_label.get_parent()->remove (name_label);
}
-
+
name_label.set_text (_name);
name_label.set_alignment (Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER);
name_label.set_name (X_("TrackParameterName"));
)
);
- line->set_line_color (ARDOUR_UI::config()->color ("processor automation line"));
+ line->set_line_color (UIConfiguration::instance().color ("processor automation line"));
line->queue_reset ();
add_line (line);
}
/* make sure labels etc. are correct */
automation_state_changed ();
- ColorsChanged.connect (sigc::mem_fun (*this, &AutomationTimeAxisView::color_handler));
+ UIConfiguration::instance().ColorsChanged.connect (sigc::mem_fun (*this, &AutomationTimeAxisView::color_handler));
_route->DropReferences.connect (
_route_connections, invalidator (*this), boost::bind (&AutomationTimeAxisView::route_going_away, this), gui_context ()
}
boost::shared_ptr<AutomationList> list = _line->the_list ();
-
+
if (list->in_write_pass()) {
/* do not allow the GUI to add automation events during an
automation write pass.
double x = 0;
- _canvas_display->canvas_to_item (x, y);
+ _line->grab_item().canvas_to_item (x, y);
/* compute vertical fractional position */
- y = 1.0 - (y / height);
+ y = 1.0 - (y / _line->height());
/* map using line */
_line->view_to_model_coord (x, y);
-
_editor.snap_to_with_modifier (when, event);
- _editor.begin_reversible_command (_("add automation event"));
XMLNode& before = list->get_state();
+ std::list<Selectable*> results;
+ if (list->editor_add (when, y, with_guard_points)) {
+ XMLNode& after = list->get_state();
+ _editor.begin_reversible_command (_("add automation event"));
+ _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
- list->editor_add (when, y, with_guard_points);
+ _line->get_selectables (when, when, 0.0, 1.0, results);
+ _editor.get_selection ().set (results);
- XMLNode& after = list->get_state();
- _session->add_command (new MementoCommand<ARDOUR::AutomationList> (*list.get (), &before, &after));
- _editor.commit_reversible_command ();
- _session->set_dirty ();
+ _editor.commit_reversible_command ();
+ _session->set_dirty ();
+ }
}
bool
{
if (_control && line) {
assert(line->the_list() == _control->list());
-
+
_control->alist()->automation_state_changed.connect (
_list_connections, invalidator (*this), boost::bind (&AutomationTimeAxisView::automation_state_changed, this), gui_context()
);
-
+
_control->alist()->InterpolationChanged.connect (
_list_connections, invalidator (*this), boost::bind (&AutomationTimeAxisView::interpolation_changed, this, _1), gui_context()
);
assert (automatable);
Automatable::Controls& controls (automatable->controls());
-
+
for (Automatable::Controls::iterator i = controls.begin(); i != controls.end(); ++i) {
-
+
boost::shared_ptr<AutomationControl> ac = boost::dynamic_pointer_cast<AutomationControl> (i->second);
if (ac && ac->alist()) {
-
+
const XMLNode* gui_node = ac->extra_xml ("GUI");
-
+
if (gui_node) {
const XMLProperty* prop = gui_node->property ("shown");
if (prop) {
if (_automatable != _route && _control) {
return string_compose ("automation %1", _control->id().to_s());
} else if (_parameter) {
- return string_compose ("automation %1 %2/%3/%4",
- _route->id(),
+ return string_compose ("automation %1 %2/%3/%4",
+ _route->id(),
_parameter.type(),
_parameter.id(),
(int) _parameter.channel());