/********************************************************************** Audacity: A Digital Audio Editor CommonTrackView.h Paul Licameli split from class TrackView **********************************************************************/ #ifndef __AUDACITY_COMMON_TRACK_VIEW__ #define __AUDACITY_COMMON_TRACK_VIEW__ #include "TrackView.h" // to inherit class SelectHandle; class TimeShiftHandle; class CommonTrackView /* not final */ : public TrackView { public: using TrackView::TrackView; // Delegates the handling to the related TCP cell std::shared_ptr ContextMenuDelegate() override; // Cause certain overriding tool modes (Zoom; future ones?) to behave // uniformly in all tracks, disregarding track contents. // Do not further override this... std::vector HitTest (const TrackPanelMouseState &, const AudacityProject *pProject) final override; void TimeShiftHitTest(); virtual int GetMinimizedHeight() const override; protected: // Rather override this for subclasses: virtual std::vector DetailedHitTest (const TrackPanelMouseState &, const AudacityProject *pProject, int currentTool, bool bMultiTool) = 0; std::weak_ptr mSelectHandle; public: std::weak_ptr mTimeShiftHandle; }; #endif