1394 {
1395 auto rect = rect_;
1397
1399 const auto pLast = *channels.rbegin();
1400 wxCoord yy = rect.GetTop();
1402 auto pHeight = heights.begin();
1403 for ( auto channel : channels )
1404 {
1406 if (auto affordance = view.GetAffordanceControls())
1407 {
1408 auto panelRect = std::make_shared<EmptyPanelRect>(
1409 channel->shared_from_this(),
1410 channel->GetSelected() ? clrTrackInfoSelected : clrTrackInfo);
1412 std::make_pair(rect.GetLeft() + 1, panelRect),
1414 };
1415 refinement.emplace_back(yy, std::make_shared<HorizontalGroup>(hgroup));
1417 }
1418
1419 auto height = *pHeight++;
1420 rect.SetTop( yy );
1422 refinement.emplace_back( yy,
1423 std::make_shared< VRulersAndChannels >(
1424 channel->shared_from_this(),
1427 if ( channel != pLast ) {
1428 yy += height;
1429 refinement.emplace_back(
1432 }
1433 }
1434
1435 return {
Axis::Y, std::move( refinement ) };
1436 }
@ kChannelSeparatorThickness
static auto Channels(TrackType *pTrack) -> TrackIterRange< TrackType >
std::vector< Child > Refinement
static TrackPanelResizerCell & Get(Track &track)
virtual Refinement GetSubViews(const wxRect &rect)
static TrackView & Get(Track &)
std::vector< int > FindAdjustedChannelHeights(Track &t)