diff --git a/src/tracks/labeltrack/ui/LabelTextHandle.cpp b/src/tracks/labeltrack/ui/LabelTextHandle.cpp index 548b3dab5..e5c908774 100644 --- a/src/tracks/labeltrack/ui/LabelTextHandle.cpp +++ b/src/tracks/labeltrack/ui/LabelTextHandle.cpp @@ -16,6 +16,7 @@ Paul Licameli split from TrackPanel.cpp #include "../../../RefreshCode.h" #include "../../../TrackPanelMouseEvent.h" #include "../../../ViewInfo.h" +#include "../../../images/Cursors.h" LabelTextHandle::LabelTextHandle() { @@ -27,13 +28,23 @@ LabelTextHandle &LabelTextHandle::Instance() return instance; } +HitTestPreview LabelTextHandle::HitPreview() +{ + static auto ibeamCursor = + ::MakeCursor(wxCURSOR_IBEAM, IBeamCursorXpm, 17, 16); + return { + _("Click to edit label text"), + ibeamCursor.get() + }; +} + HitTestResult LabelTextHandle::HitTest(const wxMouseEvent &event, LabelTrack *pLT) { // If Control is down, let the select handle be hit instead if (!event.ControlDown() && pLT->OverATextBox(event.m_x, event.m_y) >= 0) // There was no cursor change or status message for mousing over a label text box - return { {}, &Instance() }; + return { HitPreview(), &Instance() }; return {}; } @@ -140,7 +151,7 @@ UIHandle::Result LabelTextHandle::Drag HitTestPreview LabelTextHandle::Preview (const TrackPanelMouseEvent &evt, const AudacityProject *pProject) { - return {}; + return HitPreview(); } UIHandle::Result LabelTextHandle::Release diff --git a/src/tracks/labeltrack/ui/LabelTextHandle.h b/src/tracks/labeltrack/ui/LabelTextHandle.h index 1a80f155d..69c0a392a 100644 --- a/src/tracks/labeltrack/ui/LabelTextHandle.h +++ b/src/tracks/labeltrack/ui/LabelTextHandle.h @@ -28,6 +28,8 @@ class LabelTextHandle final : public LabelDefaultClickHandle LabelTextHandle &operator=(const LabelTextHandle&) = delete; static LabelTextHandle& Instance(); + static HitTestPreview HitPreview(); + public: static HitTestResult HitTest(const wxMouseEvent &event, LabelTrack *pLT);