/********************************************************************** Audacity: A Digital Audio Editor TrackPanelMouseEvent.h Paul Licameli **********************************************************************/ #ifndef __AUDACITY_TRACK_PANEL_MOUSE_EVENT__ #define __AUDACITY_TRACK_PANEL_MOUSE_EVENT__ class wxMouseEvent; class wxMouseState; class wxRect; class wxSize; class TrackPanelCell; #include "MemoryX.h" // This is a hack so that the code that fakes a MOUSE_LEFT_BTN_UP on // capture lost doesn't get in the way of handling MOUSE_RIGHT_BTN_UP. const int kCaptureLostEventId = 19019; // Augment a mouse state with information about which track panel cell and // sub-rectangle was hit. struct TrackPanelMouseState { TrackPanelMouseState ( wxMouseState &state_, const wxRect &rect_, const std::shared_ptr &pCell_ ) : state{ state_ } , rect{ rect_ } , pCell{ pCell_ } { } wxMouseState &state; const wxRect ▭ std::shared_ptr pCell; // may be NULL }; // Augment a mouse event with information about which track panel cell and // sub-rectangle was hit. struct TrackPanelMouseEvent { TrackPanelMouseEvent ( wxMouseEvent &event_, const wxRect &rect_, const wxSize &whole_, const std::shared_ptr &pCell_ ) : event{ event_ } , rect{ rect_ } , whole{ whole_ } , pCell{ pCell_ } , steps{ 0 } { } wxMouseEvent &event; const wxRect ▭ const wxSize &whole; std::shared_ptr pCell; // may be NULL double steps; // for mouse wheel rotation }; #endif