1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-11-16 14:13:53 +01:00

ProcessUIHandleResult is a member function of TrackPanel

This commit is contained in:
Paul Licameli
2018-06-24 21:51:03 -04:00
parent aeece118e8
commit 79067e43f0
2 changed files with 82 additions and 81 deletions

View File

@@ -628,13 +628,12 @@ void TrackPanel::HandleInterruptedDrag()
}
}
namespace
{
void ProcessUIHandleResult
(TrackPanel *panel, AdornedRulerPanel *ruler,
Track *pClickedTrack, Track *pLatestTrack,
void TrackPanel::ProcessUIHandleResult
(Track *pClickedTrack, Track *pLatestTrack,
UIHandle::Result refreshResult)
{
const auto panel = this;
// TODO: make a finer distinction between refreshing the track control area,
// and the waveform area. As it is, redraw both whenever you must redraw either.
@@ -652,12 +651,12 @@ namespace
pClickedTrack = NULL;
}
if (pClickedTrack && (refreshResult & UpdateVRuler))
if (pClickedTrack && (refreshResult & RefreshCode::UpdateVRuler))
panel->UpdateVRuler(pClickedTrack);
if (refreshResult & DrawOverlays) {
if (refreshResult & RefreshCode::DrawOverlays) {
panel->DrawOverlays(false);
ruler->DrawOverlays(false);
mRuler->DrawOverlays(false);
}
// Refresh all if told to do so, or if told to refresh a track that
@@ -699,10 +698,9 @@ namespace
}
}
if ((refreshResult & EnsureVisible) && pClickedTrack)
if ((refreshResult & RefreshCode::EnsureVisible) && pClickedTrack)
panel->EnsureVisible(pClickedTrack);
}
}
void TrackPanel::Uncapture(wxMouseState *pState)
{
@@ -728,7 +726,7 @@ bool TrackPanel::CancelDragging()
auto pTrack = GetTracks()->Lock(mpClickedTrack);
if (pTrack)
ProcessUIHandleResult(
this, mRuler, pTrack.get(), NULL,
pTrack.get(), NULL,
refreshResult | mMouseOverUpdateFlags );
mpClickedTrack.reset();
mUIHandle.reset(), handle.reset(), ClearTargets();
@@ -883,7 +881,7 @@ void TrackPanel::HandleMotion
// Re-draw any highlighting
if (oldCell) {
ProcessUIHandleResult(
this, GetRuler(), oldTrack.get(), oldTrack.get(), updateFlags);
oldTrack.get(), oldTrack.get(), updateFlags);
}
}
@@ -950,7 +948,7 @@ void TrackPanel::HandleMotion
SetCursor( *pCursor );
ProcessUIHandleResult(
this, GetRuler(), newTrack.get(), newTrack.get(), refreshCode);
newTrack.get(), newTrack.get(), refreshCode);
}
bool TrackPanel::HasRotation()
@@ -1371,7 +1369,7 @@ void TrackPanel::HandleWheelRotation( TrackPanelMouseEvent &tpmEvent )
pCell->HandleWheelRotation( tpmEvent, GetProject() );
auto pTrack = static_cast<CommonTrackPanelCell*>(pCell.get())->FindTrack();
ProcessUIHandleResult(
this, mRuler, pTrack.get(), pTrack.get(), result);
pTrack.get(), pTrack.get(), result);
}
void TrackPanel::OnCaptureKey(wxCommandEvent & event)
@@ -1389,7 +1387,7 @@ void TrackPanel::OnCaptureKey(wxCommandEvent & event)
if (t) {
const unsigned refreshResult =
((TrackPanelCell*)t)->CaptureKey(*kevent, *mViewInfo, this);
ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
ProcessUIHandleResult(t, t, refreshResult);
event.Skip(kevent->GetSkipped());
}
@@ -1456,7 +1454,7 @@ void TrackPanel::OnKeyDown(wxKeyEvent & event)
if (t) {
const unsigned refreshResult =
((TrackPanelCell*)t)->KeyDown(event, *mViewInfo, this);
ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
ProcessUIHandleResult(t, t, refreshResult);
}
else
event.Skip();
@@ -1479,7 +1477,7 @@ void TrackPanel::OnChar(wxKeyEvent & event)
if (t) {
const unsigned refreshResult =
((TrackPanelCell*)t)->Char(event, *mViewInfo, this);
ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
ProcessUIHandleResult(t, t, refreshResult);
}
else
event.Skip();
@@ -1511,7 +1509,7 @@ void TrackPanel::OnKeyUp(wxKeyEvent & event)
if (t) {
const unsigned refreshResult =
((TrackPanelCell*)t)->KeyUp(event, *mViewInfo, this);
ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
ProcessUIHandleResult(t, t, refreshResult);
return;
}
@@ -1631,7 +1629,7 @@ try
const UIHandle::Result refreshResult =
handle->Drag( tpmEvent, GetProject() );
ProcessUIHandleResult
(this, mRuler, pClickedTrack.get(), pTrack.get(), refreshResult);
(pClickedTrack.get(), pTrack.get(), refreshResult);
mMouseOverUpdateFlags |= refreshResult;
if (refreshResult & RefreshCode::Cancelled) {
// Drag decided to abort itself
@@ -1651,7 +1649,7 @@ try
UIHandle::Result refreshResult =
mUIHandle->Release( tpmEvent, GetProject(), this );
ProcessUIHandleResult
(this, mRuler, pClickedTrack.get(), pTrack.get(),
(pClickedTrack.get(), pTrack.get(),
refreshResult | moreFlags);
mUIHandle.reset(), ClearTargets();
mpClickedTrack.reset();
@@ -1736,7 +1734,7 @@ void TrackPanel::HandleClick( const TrackPanelMouseEvent &tpmEvent )
HandleMotion( tpmState );
}
ProcessUIHandleResult(
this, mRuler, pTrack.get(), pTrack.get(), refreshResult);
pTrack.get(), pTrack.get(), refreshResult);
mMouseOverUpdateFlags |= refreshResult;
}
}
@@ -2586,7 +2584,7 @@ void TrackPanel::OnTrackMenu(Track *t)
const wxRect rect(FindTrackRect(t, true));
const UIHandle::Result refreshResult =
pCell->DoContextMenu(rect, this, NULL);
ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
ProcessUIHandleResult(t, t, refreshResult);
}
Track * TrackPanel::GetFirstSelectedTrack()

View File

@@ -550,6 +550,9 @@ protected:
DECLARE_EVENT_TABLE()
void ProcessUIHandleResult
(Track *pClickedTrack, Track *pLatestTrack, unsigned refreshResult);
// friending GetInfoCommand allow automation to get sizes of the
// tracks, track control panel and such.
friend class GetInfoCommand;