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

Distinguish TrackPanelMouseState from TrackPanelMouseEvent...

... Let cell hit tests, and handle preview, know states only, not transitions.

Cell hit tests are passed a mouse state that does not always match the current,
but anticipates the button click to come; usually left, but if the Control
[sic] key on Mac is down, then right.

Thus, pressing and releasing Mac Control in multi-tool switches in and out of
the magnifier cursor.
This commit is contained in:
Paul Licameli
2017-06-28 23:21:20 -04:00
parent c1f667f170
commit 3a8280c562
76 changed files with 327 additions and 277 deletions

View File

@@ -12,11 +12,30 @@ Paul Licameli
#define __AUDACITY_TRACK_PANEL_MOUSE_EVENT__
class wxMouseEvent;
class wxMouseState;
class wxRect;
class wxSize;
class TrackPanelCell;
#include "MemoryX.h"
// 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<TrackPanelCell> &pCell_ )
: state{ state_ }
, rect{ rect_ }
, pCell{ pCell_ }
{
}
wxMouseState &state;
const wxRect &rect;
std::shared_ptr<TrackPanelCell> pCell; // may be NULL
};
// Augment a mouse event with information about which track panel cell and
// sub-rectangle was hit.
struct TrackPanelMouseEvent