mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-14 09:03:54 +01:00
Move drawing code for snap guidelines
This commit is contained in:
@@ -27,7 +27,9 @@ Paul Licameli split from TrackPanel.cpp
|
||||
#include "../../RefreshCode.h"
|
||||
#include "../../SelectUtilities.h"
|
||||
#include "../../SelectionState.h"
|
||||
#include "../../TrackArtist.h"
|
||||
#include "../../TrackPanel.h"
|
||||
#include "../../TrackPanelDrawingContext.h"
|
||||
#include "../../TrackPanelMouseEvent.h"
|
||||
#include "../../ViewInfo.h"
|
||||
#include "../../WaveClip.h"
|
||||
@@ -1009,19 +1011,30 @@ UIHandle::Result SelectHandle::Cancel(AudacityProject *pProject)
|
||||
return RefreshCode::RefreshAll;
|
||||
}
|
||||
|
||||
void SelectHandle::DrawExtras
|
||||
(DrawingPass pass, wxDC * dc, const wxRegion &, const wxRect &)
|
||||
void SelectHandle::Draw(
|
||||
TrackPanelDrawingContext &context,
|
||||
const wxRect &rect, unsigned iPass )
|
||||
{
|
||||
if (pass == Panel) {
|
||||
if ( iPass == TrackArtist::PassSnapping ) {
|
||||
auto &dc = context.dc;
|
||||
// Draw snap guidelines if we have any
|
||||
if ( mSnapManager ) {
|
||||
auto coord1 = (mUseSnap || IsClicked()) ? mSnapStart.outCoord : -1;
|
||||
auto coord2 = (!mUseSnap || !IsClicked()) ? -1 : mSnapEnd.outCoord;
|
||||
mSnapManager->Draw( dc, coord1, coord2 );
|
||||
mSnapManager->Draw( &dc, coord1, coord2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wxRect SelectHandle::DrawingArea(
|
||||
const wxRect &rect, const wxRect &panelRect, unsigned iPass )
|
||||
{
|
||||
if ( iPass == TrackArtist::PassSnapping )
|
||||
return MaximizeHeight( rect, panelRect );
|
||||
else
|
||||
return rect;
|
||||
}
|
||||
|
||||
void SelectHandle::Connect(AudacityProject *pProject)
|
||||
{
|
||||
mTimerHandler = std::make_shared<TimerHandler>( this, pProject );
|
||||
|
||||
@@ -73,11 +73,6 @@ public:
|
||||
|
||||
Result Cancel(AudacityProject*) override;
|
||||
|
||||
void DrawExtras
|
||||
(DrawingPass pass,
|
||||
wxDC * dc, const wxRegion &updateRegion, const wxRect &panelRect)
|
||||
override;
|
||||
|
||||
static UIHandle::Result NeedChangeHighlight
|
||||
(const SelectHandle &oldState,
|
||||
const SelectHandle &newState);
|
||||
@@ -116,6 +111,15 @@ public:
|
||||
(SpectrumAnalyst &analyst,
|
||||
ViewInfo &viewInfo, const WaveTrack *pTrack, bool up);
|
||||
private:
|
||||
|
||||
// TrackPanelDrawable implementation
|
||||
void Draw(
|
||||
TrackPanelDrawingContext &context,
|
||||
const wxRect &rect, unsigned iPass ) override;
|
||||
|
||||
wxRect DrawingArea(
|
||||
const wxRect &rect, const wxRect &panelRect, unsigned iPass ) override;
|
||||
|
||||
//void ResetFreqSelectionPin
|
||||
// (const ViewInfo &viewInfo, double hintFrequency, bool logF);
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ Paul Licameli split from TrackPanel.cpp
|
||||
#include "../../ProjectHistory.h"
|
||||
#include "../../ProjectSettings.h"
|
||||
#include "../../RefreshCode.h"
|
||||
#include "../../TrackArtist.h"
|
||||
#include "../../TrackPanelDrawingContext.h"
|
||||
#include "../../TrackPanelMouseEvent.h"
|
||||
#include "../../UndoManager.h"
|
||||
#include "../../WaveClip.h"
|
||||
@@ -848,14 +850,25 @@ UIHandle::Result TimeShiftHandle::Cancel(AudacityProject *pProject)
|
||||
return RefreshCode::RefreshAll;
|
||||
}
|
||||
|
||||
void TimeShiftHandle::DrawExtras
|
||||
(DrawingPass pass,
|
||||
wxDC * dc, const wxRegion &, const wxRect &)
|
||||
void TimeShiftHandle::Draw(
|
||||
TrackPanelDrawingContext &context,
|
||||
const wxRect &rect, unsigned iPass )
|
||||
{
|
||||
if (pass == Panel) {
|
||||
if ( iPass == TrackArtist::PassSnapping ) {
|
||||
auto &dc = context.dc;
|
||||
// Draw snap guidelines if we have any
|
||||
if ( mSnapManager )
|
||||
mSnapManager->Draw
|
||||
( dc, mClipMoveState.snapLeft, mClipMoveState.snapRight );
|
||||
if ( mSnapManager ) {
|
||||
mSnapManager->Draw(
|
||||
&dc, mClipMoveState.snapLeft, mClipMoveState.snapRight );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wxRect TimeShiftHandle::DrawingArea(
|
||||
const wxRect &rect, const wxRect &panelRect, unsigned iPass )
|
||||
{
|
||||
if ( iPass == TrackArtist::PassSnapping )
|
||||
return MaximizeHeight( rect, panelRect );
|
||||
else
|
||||
return rect;
|
||||
}
|
||||
|
||||
@@ -102,13 +102,17 @@ public:
|
||||
|
||||
Result Cancel(AudacityProject *pProject) override;
|
||||
|
||||
void DrawExtras
|
||||
(DrawingPass pass,
|
||||
wxDC * dc, const wxRegion &, const wxRect &panelRect) override;
|
||||
|
||||
bool StopsOnKeystroke() override { return true; }
|
||||
|
||||
private:
|
||||
// TrackPanelDrawable implementation
|
||||
void Draw(
|
||||
TrackPanelDrawingContext &context,
|
||||
const wxRect &rect, unsigned iPass ) override;
|
||||
|
||||
wxRect DrawingArea(
|
||||
const wxRect &rect, const wxRect &panelRect, unsigned iPass ) override;
|
||||
|
||||
std::shared_ptr<Track> mCapturedTrack;
|
||||
wxRect mRect{};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user