1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-23 17:30:17 +01:00

Define class SelectionState; move some TrackPanel functions into it

This commit is contained in:
Paul Licameli
2017-06-11 07:20:01 -04:00
committed by Paul Licameli
parent 986f158efa
commit a594207265
9 changed files with 323 additions and 209 deletions

43
src/SelectionState.h Normal file
View File

@@ -0,0 +1,43 @@
/**********************************************************************
Audacity: A Digital Audio Editor
SelectionState.h
**********************************************************************/
#ifndef __AUDACITY_SELECTION_STATE__
#define __AUDACITY_SELECTION_STATE__
class Track;
class TrackList;
class MixerBoard;
class ViewInfo;
// State relating to the set of selected tracks
class SelectionState
{
public:
static void SelectTrackLength
( TrackList &tracks, ViewInfo &viewInfo, Track &track, bool syncLocked );
void SelectTrack
( TrackList &tracks, Track &track,
bool selected, bool updateLastPicked, MixerBoard *pMixerBoard );
// Inclusive range of tracks, the limits specified in either order:
void SelectRangeOfTracks
( TrackList &tracks, Track &sTrack, Track &eTrack,
MixerBoard *pMixerBoard );
void SelectNone( TrackList &tracks, MixerBoard *pMixerBoard );
void ChangeSelectionOnShiftClick
( TrackList &tracks, Track &track, MixerBoard *pMixerBoard );
void HandleListSelection
( TrackList &tracks, ViewInfo &viewInfo, Track &track,
bool shift, bool ctrl, bool syncLocked, MixerBoard *pMixerBoard );
void TrackListUpdated( const TrackList &tracks );
Track *mLastPickedTrack {};
};
#endif