: _trackview (tv)
, owns_canvas_group(group == 0)
, canvas_group(group ? group : new ArdourCanvas::Group(*_trackview.canvas_display))
- , canvas_rect(new ArdourCanvas::SimpleRect (*canvas_group))
, _samples_per_unit(_trackview.editor.get_current_zoom())
, rec_updating(false)
, rec_active(false)
{
/* set_position() will position the group */
+ canvas_rect = new ArdourCanvas::SimpleRect (*canvas_group);
canvas_rect->property_x1() = 0.0;
canvas_rect->property_y1() = 0.0;
- canvas_rect->property_x2() = _trackview.editor.frame_to_pixel (max_frames);
- canvas_rect->property_y2() = (double) tv.height;
+ canvas_rect->property_x2() = _trackview.editor.frame_to_pixel (max_frames - 1);
+ canvas_rect->property_y2() = (double) tv.current_height();
+ canvas_rect->raise(1); // raise above tempo lines
+
+ // DR-way
canvas_rect->property_outline_what() = (guint32) (0x2|0x8); // outline RHS and bottom
+ // 2.0 way
+ //canvas_rect->property_outline_what() = (guint32) (0x1|0x2|0x8); // outline ends and bottom
// (Fill/Outline colours set in derived classes)
canvas_rect->signal_event().connect (bind (mem_fun (_trackview.editor, &PublicEditor::canvas_stream_view_event), canvas_rect, &_trackview));
}
height = h;
- update_contents_y_position_and_height ();
+ update_contents_height ();
return 0;
}
/* update layers count and the y positions and heights of our regions */
if (ds->playlist()) {
layers = ds->playlist()->top_layer() + 1;
- update_contents_y_position_and_height ();
+ update_contents_height ();
redisplay_diskstream ();
}
}
/* update layers count and the y positions and heights of our regions */
layers = ds->playlist()->top_layer() + 1;
- update_contents_y_position_and_height ();
+ update_contents_height ();
/* draw it */
redisplay_diskstream ();
void
StreamView::region_layered (RegionView* rv)
{
-
- /*
- Currently 'layer' has nothing to do with the desired canvas layer.
- For now, ensure that multiple regionviews passed here in groups are
- ordered by 'layer' (lowest to highest).
-
- (see AudioStreamView::redisplay_diskstream ()).
-
- We move them to the top layer as they arrive.
- */
-
- rv->get_canvas_group()->raise_to_top();
+ /* don't ever leave it at the bottom, since then it doesn't
+ get events - the parent group does instead ...
+ we need to raise it above the streamview's
+ canvas_rect, hence the layer+1 here
+ */
+ rv->get_canvas_group()->raise (rv->region()->layer() + 1);
}
void
}
void
-StreamView::update_contents_y_position_and_height ()
+StreamView::update_contents_height ()
{
canvas_rect->property_y2() = height;
for (RegionViewList::iterator i = region_views.begin(); i != region_views.end(); ++i) {
switch (layer_display) {
case Overlaid:
- (*i)->set_y_position_and_height (0, height);
+ (*i)->set_height (height);
break;
case Stacked:
- double const y = (*i)->region()->layer() * lh;
- (*i)->set_y_position_and_height (y, lh);
+ cout << "FIXME: Stacked regions: set y position" << endl;
+ //double const y = (*i)->region()->layer() * lh;
+ (*i)->set_height (lh);
break;
}
}
StreamView::set_layer_display (LayerDisplay d)
{
layer_display = d;
- update_contents_y_position_and_height ();
+ update_contents_height ();
}