1 /********************************************************************** 2 3 Audacity: A Digital Audio Editor 4 5 TimeTrackControls.h 6 7 Paul Licameli split from TrackPanel.cpp 8 9 **********************************************************************/ 10 11 #ifndef __AUDACITY_TIME_TRACK_CONTROLS__ 12 #define __AUDACITY_TIME_TRACK_CONTROLS__ 13 14 #include "../../ui/CommonTrackControls.h" // to inherit 15 16 class TimeTrackControls final : public CommonTrackControls 17 { 18 TimeTrackControls(const TimeTrackControls&) = delete; 19 TimeTrackControls &operator=(const TimeTrackControls&) = delete; 20 21 public: 22 explicit TimeTrackControls(std::shared_ptr<Track> pTrack)23 TimeTrackControls( std::shared_ptr<Track> pTrack ) 24 : CommonTrackControls( pTrack ) {} 25 ~TimeTrackControls(); 26 27 std::vector<UIHandlePtr> HitTest 28 (const TrackPanelMouseState &state, 29 const AudacityProject *pProject) override; 30 31 PopupMenuTable *GetMenuExtension(Track *pTrack) override; 32 33 static const int kRangeMin {10}; 34 static const int kRangeMax {1000}; 35 }; 36 37 #include "../../../widgets/PopupMenuTable.h" 38 39 class TimeTrackMenuTable : public PopupMenuTable 40 { TimeTrackMenuTable()41 TimeTrackMenuTable() 42 : PopupMenuTable{ "TimeTrack" } 43 {} 44 45 DECLARE_POPUP_MENU(TimeTrackMenuTable); 46 47 public: 48 static TimeTrackMenuTable &Instance(); 49 50 protected: 51 void InitUserData(void *pUserData) override; 52 53 private: 54 CommonTrackControls::InitMenuData *mpData{}; 55 56 void OnSetTimeTrackRange(wxCommandEvent & /*event*/); 57 void OnTimeTrackLin(wxCommandEvent & /*event*/); 58 void OnTimeTrackLog(wxCommandEvent & /*event*/); 59 void OnTimeTrackLogInt(wxCommandEvent & /*event*/); 60 }; 61 62 #endif 63