uint32_t TimeAxisView::button_height = 0;
uint32_t TimeAxisView::extra_height = 0;
int const TimeAxisView::_max_order = 512;
-unsigned int TimeAxisView::name_width_px = 100; // TODO adjust with font-scaling on style-change
+unsigned int TimeAxisView::name_width_px = 100;
PBD::Signal1<void,TimeAxisView*> TimeAxisView::CatchDeletion;
Glib::RefPtr<Gtk::SizeGroup> TimeAxisView::controls_meters_size_group = Glib::RefPtr<Gtk::SizeGroup>();
Glib::RefPtr<Gtk::SizeGroup> TimeAxisView::midi_scroomer_size_group = Glib::RefPtr<Gtk::SizeGroup>();
+void
+TimeAxisView::setup_sizes()
+{
+ name_width_px = ceil (100. * ARDOUR_UI::config()->get_font_scale() / 102400.);
+}
+
TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisView* rent, Canvas& /*canvas*/)
: AxisView (sess)
, controls_table (3, 3)
TimeAxisView::~TimeAxisView()
{
+ CatchDeletion (this);
+
in_destructor = true;
for (list<GhostRegion*>::iterator i = ghosts.begin(); i != ghosts.end(); ++i) {
}
for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- delete (*i)->rect;
- delete (*i)->start_trim;
- delete (*i)->end_trim;
+ delete (*i)->rect; (*i)->rect=0;
+ delete (*i)->start_trim; (*i)->start_trim = 0;
+ delete (*i)->end_trim; (*i)->end_trim = 0;
}
for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- delete (*i)->rect;
- delete (*i)->start_trim;
- delete (*i)->end_trim;
+ delete (*i)->rect; (*i)->rect = 0;
+ delete (*i)->start_trim; (*i)->start_trim = 0;
+ delete (*i)->end_trim; (*i)->end_trim = 0;
}
delete selection_group;
}
void
-TimeAxisView::set_height (uint32_t h)
+TimeAxisView::set_height (uint32_t h, TrackHeightMode m)
{
+ uint32_t lanes = 0;
+ if (m == TotalHeight) {
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ if ( !(*i)->hidden()) ++lanes;
+ }
+ }
+ h /= (lanes + 1);
+
if (h < preset_height (HeightSmall)) {
h = preset_height (HeightSmall);
}
show_selection (_editor.get_selection().time);
}
+ if (m != OnlySelf) {
+ for (Children::iterator i = children.begin(); i != children.end(); ++i) {
+ (*i)->set_height(h, OnlySelf);
+ }
+ }
+
_editor.override_visible_track_count ();
}
rect = new SelectionRect;
- rect->rect = new ArdourCanvas::TimeRectangle (selection_group);
+ rect->rect = new ArdourCanvas::Rectangle (selection_group);
CANVAS_DEBUG_NAME (rect->rect, "selection rect");
rect->rect->set_outline (false);
- rect->rect->set_fill_color (ARDOUR_UI::config()->get_SelectionRect());
+ rect->rect->set_fill_color (ARDOUR_UI::config()->color_mod ("selection rect", "selection rect"));
rect->start_trim = new ArdourCanvas::Rectangle (selection_group);
CANVAS_DEBUG_NAME (rect->start_trim, "selection rect start trim");
* @param result Filled in with selectable things.
*/
void
-TimeAxisView::get_selectables (framepos_t /*start*/, framepos_t /*end*/, double /*top*/, double /*bot*/, list<Selectable*>& /*result*/)
+TimeAxisView::get_selectables (framepos_t /*start*/, framepos_t /*end*/, double /*top*/, double /*bot*/, list<Selectable*>& /*result*/, bool /*within*/)
{
return;
}
for (list<SelectionRect*>::iterator i = used_selection_rects.begin(); i != used_selection_rects.end(); ++i) {
- (*i)->rect->set_fill_color (ARDOUR_UI::config()->get_SelectionRect());
- (*i)->rect->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->rect->set_fill_color (ARDOUR_UI::config()->color_mod ("selection rect", "selection rect"));
+ (*i)->rect->set_outline_color (ARDOUR_UI::config()->color ("selection"));
- (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->get_Selection());
- (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->color ("selection"));
+ (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->color ("selection"));
- (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->get_Selection());
- (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->color ("selection"));
+ (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->color ("selection"));
}
for (list<SelectionRect*>::iterator i = free_selection_rects.begin(); i != free_selection_rects.end(); ++i) {
- (*i)->rect->set_fill_color (ARDOUR_UI::config()->get_SelectionRect());
- (*i)->rect->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->rect->set_fill_color (ARDOUR_UI::config()->color_mod ("selection rect", "selection rect"));
+ (*i)->rect->set_outline_color (ARDOUR_UI::config()->color ("selection"));
- (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->get_Selection());
- (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->start_trim->set_fill_color (ARDOUR_UI::config()->color ("selection"));
+ (*i)->start_trim->set_outline_color (ARDOUR_UI::config()->color ("selection"));
- (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->get_Selection());
- (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->get_Selection());
+ (*i)->end_trim->set_fill_color (ARDOUR_UI::config()->color ("selection"));
+ (*i)->end_trim->set_outline_color (ARDOUR_UI::config()->color ("selection"));
}
}