summaryrefslogtreecommitdiff
path: root/gtk2_ardour/crossfade_view.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-04-03 22:35:44 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-04-03 22:35:44 +0000
commit7c9c3b8f6ccc4c0ebf963b05c2df400864ba46f0 (patch)
treef24e9baa1096a45165ada447d0dd91096567c6ba /gtk2_ardour/crossfade_view.cc
parent9644362c928aa87008e1869bf3b069572fc5bf88 (diff)
visual tweak patch from lincoln, for time axis views
git-svn-id: svn://localhost/ardour2/branches/3.0@6857 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/crossfade_view.cc')
-rw-r--r--gtk2_ardour/crossfade_view.cc26
1 files changed, 20 insertions, 6 deletions
diff --git a/gtk2_ardour/crossfade_view.cc b/gtk2_ardour/crossfade_view.cc
index d4f0f5af08..918f081cdb 100644
--- a/gtk2_ardour/crossfade_view.cc
+++ b/gtk2_ardour/crossfade_view.cc
@@ -55,8 +55,7 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
xf->length(), false, TimeAxisViewItem::Visibility (TimeAxisViewItem::ShowFrame)),
crossfade (xf),
left_view (lview),
- right_view (rview)
-
+ right_view (rview)
{
_valid = true;
_visible = true;
@@ -76,7 +75,6 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
frame->property_outline_what() = 0;
/* never show the vestigial frame */
-
vestigial_frame->hide();
show_vestigial = false;
@@ -114,9 +112,9 @@ CrossfadeView::set_height (double height)
{
double h = 0;
if (height <= TimeAxisView::hSmaller) {
- h = height - 3;
+ TimeAxisViewItem::set_height (height);
} else {
- h = height - NAME_HIGHLIGHT_SIZE - 3;
+ TimeAxisViewItem::set_height (height - NAME_HIGHLIGHT_SIZE);
}
TimeAxisViewItem::set_height (h);
@@ -165,6 +163,20 @@ CrossfadeView::redraw_curves ()
return;
}
+ /*
+ At "height - 3.0" the bottom of the crossfade touches the name highlight or the bottom of the track (if the
+ track is either Small or Smaller.
+ */
+
+ double tav_height = get_time_axis_view().current_height();
+
+ if (tav_height == TimeAxisView::hSmaller ||
+ tav_height == TimeAxisView::hSmall) {
+ _height = tav_height - 3.0;
+ } else {
+ _height = tav_height - NAME_HIGHLIGHT_SIZE - 3.0;
+ }
+
if (_height < 0) {
/* no space allocated yet */
return;
@@ -192,14 +204,17 @@ CrossfadeView::redraw_curves ()
p.set_x(i);
p.set_y(2.0 + _height - (_height * vec[i]));
}
+
fade_in->property_points() = *points;
crossfade->fade_out().curve().get_vector (0, crossfade->length(), vec, npoints);
+
for (int i = 0, pci = 0; i < npoints; ++i) {
Art::Point &p = (*points)[pci++];
p.set_x(i);
p.set_y(2.0 + _height - (_height * vec[i]));
}
+
fade_out->property_points() = *points;
delete [] vec;
@@ -266,4 +281,3 @@ CrossfadeView::fake_hide ()
{
group->hide();
}
-