Audacity 3.2.0
SelectionState.h
Go to the documentation of this file.
1/**********************************************************************
2
3 Audacity: A Digital Audio Editor
4
5 SelectionState.h
6
7 **********************************************************************/
8
9#ifndef __AUDACITY_SELECTION_STATE__
10#define __AUDACITY_SELECTION_STATE__
11
12class AudacityProject;
13class Track;
14class TrackList;
15class ViewInfo;
16#include "ClientData.h"
17#include <memory>
18#include <vector>
19
20// State relating to the set of selected tracks
21class TRACK_SELECTION_API SelectionState final
22 : public ClientData::Base
23{
24public:
25 SelectionState() = default;
26 SelectionState( const SelectionState & ) = delete;
28
30 static const SelectionState &Get( const AudacityProject &project );
31
39 static void SelectTrackLength(
40 ViewInfo &viewInfo, Track &track, bool syncLocked);
41
45 void SelectTrack(
46 Track &track, bool selected, bool updateLastPicked );
47 // Inclusive range of tracks, the limits specified in either order:
48 void SelectRangeOfTracks
49 ( TrackList &tracks, Track &sTrack, Track &eTrack );
51 void ChangeSelectionOnShiftClick
52 ( TrackList &tracks, Track &track );
56 void HandleListSelection(TrackList &tracks, ViewInfo &viewInfo,
57 Track &track, bool shift, bool ctrl, bool syncLocked);
58
59private:
61
66 std::weak_ptr<Track> mLastPickedTrack;
67};
68
69// For committing or rolling-back of changes in selectedness of tracks.
70// When rolling back, it is assumed that no tracks have been added or removed.
71class TRACK_SELECTION_API SelectionStateChanger
72{
73public:
77
79 void Commit();
80
81private:
84 std::weak_ptr<Track> mInitialLastPickedTrack;
85 std::vector<bool> mInitialTrackSelection;
86};
87
88#endif
Utility ClientData::Site to register hooks into a host class that attach client data.
const auto tracks
const auto project
The top-level handle to an Audacity project. It serves as a source of events that other objects can b...
Definition: Project.h:90
SelectionStateChanger & operator=(const SelectionStateChanger &)=delete
SelectionState * mpState
std::vector< bool > mInitialTrackSelection
std::weak_ptr< Track > mInitialLastPickedTrack
SelectionStateChanger(const SelectionStateChanger &)=delete
SelectionState(const SelectionState &)=delete
std::weak_ptr< Track > mLastPickedTrack
SelectionState & operator=(const SelectionState &)=delete
SelectionState()=default
Abstract base class for an object holding data associated with points on a time axis.
Definition: Track.h:122
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
Definition: Track.h:975
Services * Get()
Fetch the global instance, or nullptr if none is yet installed.
Definition: BasicUI.cpp:196
void SelectNone(AudacityProject &project)
A convenient default parameter for class template Site.
Definition: ClientData.h:28