Files
sbox-public/game/editor/MovieMaker/Code/Session/Tracks.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

48 lines
1.0 KiB
C#

namespace Editor.MovieMaker;
#nullable enable
partial class Session
{
private TrackListView? _trackList;
private float _trackListScrollPosition;
/// <summary>
/// Which tracks should be visible in the track list / dope sheet.
/// </summary>
public TrackListView TrackList => _trackList ??= new TrackListView( this );
public float TrackListScrollOffset => 32f;
public float TrackListScrollPosition
{
get
{
var viewHeight = TrackListViewHeight;
var contentsHeight = TrackList.Height;
var headerOffset = -TrackListHeaderHeight + 28f;
var max = Math.Max( headerOffset, contentsHeight - viewHeight );
return Math.Clamp( _trackListScrollPosition, headerOffset, max );
}
set
{
if ( _trackListScrollPosition.Equals( value ) ) return;
_trackListScrollPosition = value;
Cookies.ScrollPosition = value;
DispatchViewChanged();
}
}
public float TrackListHeaderHeight { get; set; } = 0f;
public float TrackListViewHeight { get; set; } = float.PositiveInfinity;
private void TrackFrame()
{
_trackList?.Frame();
}
}