mirror of
https://github.com/cookiengineer/audacity
synced 2026-01-13 16:15:48 +01:00
New base classes of TrackPanel just for the bitmap backing and overlay system...
... to make it reusable by other classes. Also, don't create a second DC when repainting TrackPanel.
This commit is contained in:
@@ -65,9 +65,12 @@ std::pair<wxRect, bool> EditCursorOverlay::DoGetRectangle(wxSize size)
|
||||
}
|
||||
|
||||
|
||||
void EditCursorOverlay::Draw
|
||||
(wxDC &dc, TrackPanelCellIterator begin, TrackPanelCellIterator end)
|
||||
void EditCursorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
|
||||
{
|
||||
TrackPanel &tp = static_cast<TrackPanel&>(panel);
|
||||
TrackPanelCellIterator begin(&tp, true);
|
||||
TrackPanelCellIterator end(&tp, false);
|
||||
|
||||
mLastCursorX = mNewCursorX;
|
||||
if (mLastCursorX == -1)
|
||||
return;
|
||||
|
||||
@@ -11,11 +11,11 @@ Paul Licameli split from TrackPanel.cpp
|
||||
#ifndef __AUDACITY_EDIT_CURSOR_OVERLAY__
|
||||
#define __AUDACITY_EDIT_CURSOR_OVERLAY__
|
||||
|
||||
#include "../../TrackPanelOverlay.h"
|
||||
#include "../../widgets/Overlay.h"
|
||||
|
||||
class AudacityProject;
|
||||
|
||||
class EditCursorOverlay final : public TrackPanelOverlay
|
||||
class EditCursorOverlay final : public Overlay
|
||||
{
|
||||
public:
|
||||
EditCursorOverlay(AudacityProject *project);
|
||||
@@ -23,8 +23,7 @@ public:
|
||||
|
||||
private:
|
||||
std::pair<wxRect, bool> DoGetRectangle(wxSize size) override;
|
||||
void Draw
|
||||
(wxDC &dc, TrackPanelCellIterator begin, TrackPanelCellIterator end) override;
|
||||
void Draw(OverlayPanel &panel, wxDC &dc) override;
|
||||
|
||||
AudacityProject *mProject;
|
||||
|
||||
|
||||
@@ -61,9 +61,12 @@ std::pair<wxRect, bool> PlayIndicatorOverlay::DoGetRectangle(wxSize size)
|
||||
}
|
||||
|
||||
|
||||
void PlayIndicatorOverlay::Draw
|
||||
(wxDC &dc, TrackPanelCellIterator begin, TrackPanelCellIterator end)
|
||||
void PlayIndicatorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
|
||||
{
|
||||
TrackPanel &tp = static_cast<TrackPanel&>(panel);
|
||||
TrackPanelCellIterator begin(&tp, true);
|
||||
TrackPanelCellIterator end(&tp, false);
|
||||
|
||||
mLastIndicatorX = mNewIndicatorX;
|
||||
if (!between_incexc(0, mLastIndicatorX, dc.GetSize().GetWidth()))
|
||||
return;
|
||||
@@ -106,7 +109,7 @@ void PlayIndicatorOverlay::Draw
|
||||
|
||||
void PlayIndicatorOverlay::Erase(wxDC &dc, wxDC &src)
|
||||
{
|
||||
TrackPanelOverlay::Erase(dc, src);
|
||||
Overlay::Erase(dc, src);
|
||||
mProject->GetRulerPanel()->ClearIndicator();
|
||||
}
|
||||
|
||||
|
||||
@@ -11,13 +11,13 @@ Paul Licameli split from TrackPanel.cpp
|
||||
#ifndef __AUDACITY_PLAY_INDICATOR_OVERLAY__
|
||||
#define __AUDACITY_PLAY_INDICATOR_OVERLAY__
|
||||
|
||||
#include "../../TrackPanelOverlay.h"
|
||||
#include <wx/event.h>
|
||||
#include "../../widgets/Overlay.h"
|
||||
|
||||
class AudacityProject;
|
||||
|
||||
|
||||
class PlayIndicatorOverlay final : public wxEvtHandler, public TrackPanelOverlay
|
||||
class PlayIndicatorOverlay final : public wxEvtHandler, public Overlay
|
||||
{
|
||||
public:
|
||||
PlayIndicatorOverlay(AudacityProject *project);
|
||||
@@ -25,8 +25,7 @@ public:
|
||||
|
||||
private:
|
||||
std::pair<wxRect, bool> DoGetRectangle(wxSize size) override;
|
||||
void Draw
|
||||
(wxDC &dc, TrackPanelCellIterator begin, TrackPanelCellIterator end) override;
|
||||
void Draw(OverlayPanel &panel, wxDC &dc) override;
|
||||
void Erase(wxDC &dc, wxDC &src) override;
|
||||
|
||||
void OnTimer(wxCommandEvent &event);
|
||||
|
||||
@@ -8,6 +8,7 @@ Paul Licameli split from TrackPanel.cpp
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
#include "../../Audacity.h"
|
||||
#include "Scrubbing.h"
|
||||
#include "../../Experimental.h"
|
||||
#include <functional>
|
||||
@@ -532,8 +533,7 @@ std::pair<wxRect, bool> ScrubbingOverlay::DoGetRectangle(wxSize)
|
||||
);
|
||||
}
|
||||
|
||||
void ScrubbingOverlay::Draw
|
||||
(wxDC &dc, TrackPanelCellIterator, TrackPanelCellIterator)
|
||||
void ScrubbingOverlay::Draw(OverlayPanel &, wxDC &dc)
|
||||
{
|
||||
mLastScrubRect = mNextScrubRect;
|
||||
mLastScrubSpeedText = mNextScrubSpeedText;
|
||||
|
||||
@@ -16,7 +16,7 @@ Paul Licameli split from TrackPanel.cpp
|
||||
#include <wx/longlong.h>
|
||||
|
||||
#include "../../Experimental.h"
|
||||
#include "../../TrackPanelOverlay.h"
|
||||
#include "../../widgets/Overlay.h"
|
||||
|
||||
class AudacityProject;
|
||||
|
||||
@@ -128,7 +128,7 @@ private:
|
||||
};
|
||||
|
||||
// Specialist in drawing the scrub speed, and listening for certain events
|
||||
class ScrubbingOverlay final : public wxEvtHandler, public TrackPanelOverlay
|
||||
class ScrubbingOverlay final : public wxEvtHandler, public Overlay
|
||||
{
|
||||
public:
|
||||
ScrubbingOverlay(AudacityProject *project);
|
||||
@@ -136,8 +136,7 @@ public:
|
||||
|
||||
private:
|
||||
std::pair<wxRect, bool> DoGetRectangle(wxSize size) override;
|
||||
void Draw
|
||||
(wxDC &dc, TrackPanelCellIterator begin, TrackPanelCellIterator end) override;
|
||||
void Draw(OverlayPanel &panel, wxDC &dc) override;
|
||||
|
||||
void OnTimer(wxCommandEvent &event);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user