Give TrackArtist a back-pointer to TrackPanel
This commit is contained in:
parent
9bb235c274
commit
50cf2e9a1f
|
@ -46,9 +46,10 @@ class AudacityPrintout final : public wxPrintout
|
|||
{
|
||||
public:
|
||||
AudacityPrintout(wxString title,
|
||||
TrackList *tracks):
|
||||
TrackList *tracks, TrackPanel &panel):
|
||||
wxPrintout(title),
|
||||
mTracks(tracks)
|
||||
, mPanel(panel)
|
||||
{
|
||||
}
|
||||
bool OnPrintPage(int page);
|
||||
|
@ -58,6 +59,7 @@ class AudacityPrintout final : public wxPrintout
|
|||
int *selPageFrom, int *selPageTo);
|
||||
|
||||
private:
|
||||
TrackPanel &mPanel;
|
||||
TrackList *mTracks;
|
||||
};
|
||||
|
||||
|
@ -84,7 +86,7 @@ bool AudacityPrintout::OnPrintPage(int WXUNUSED(page))
|
|||
ruler.SetLabelEdges(true);
|
||||
ruler.Draw(*dc);
|
||||
|
||||
TrackArtist artist;
|
||||
TrackArtist artist( &mPanel );
|
||||
artist.SetBackgroundBrushes(*wxWHITE_BRUSH, *wxWHITE_BRUSH,
|
||||
*wxWHITE_PEN, *wxWHITE_PEN);
|
||||
const double screenDuration = mTracks->GetEndTime();
|
||||
|
@ -144,12 +146,14 @@ void HandlePageSetup(wxWindow *parent)
|
|||
gPrintData() = pageSetupDialog.GetPageSetupData().GetPrintData();
|
||||
}
|
||||
|
||||
void HandlePrint(wxWindow *parent, const wxString &name, TrackList *tracks)
|
||||
void HandlePrint(
|
||||
wxWindow *parent, const wxString &name, TrackList *tracks,
|
||||
TrackPanel &panel)
|
||||
{
|
||||
wxPrintDialogData printDialogData(gPrintData());
|
||||
|
||||
wxPrinter printer(&printDialogData);
|
||||
AudacityPrintout printout(name, tracks);
|
||||
AudacityPrintout printout(name, tracks, panel);
|
||||
if (!printer.Print(parent, &printout, true)) {
|
||||
if (wxPrinter::GetLastError() == wxPRINTER_ERROR) {
|
||||
AudacityMessageBox(_("There was a problem printing."),
|
||||
|
|
|
@ -16,9 +16,12 @@
|
|||
|
||||
class wxWindow;
|
||||
class TrackList;
|
||||
class TrackPanel;
|
||||
|
||||
void HandlePageSetup(wxWindow *parent);
|
||||
void HandlePrint(wxWindow *parent, const wxString &name, TrackList *tracks);
|
||||
void HandlePrint(
|
||||
wxWindow *parent, const wxString &name, TrackList *tracks,
|
||||
TrackPanel &panel);
|
||||
|
||||
#endif // __AUDACITY_PRINTING__
|
||||
|
||||
|
|
|
@ -164,7 +164,8 @@ int TrackArt::GetBottom(NoteTrack *t, const wxRect &rect)
|
|||
*/
|
||||
#endif // USE_MIDI
|
||||
|
||||
TrackArtist::TrackArtist()
|
||||
TrackArtist::TrackArtist( TrackPanel *parent_ )
|
||||
: parent( parent_ )
|
||||
{
|
||||
mdBrange = ENV_DB_RANGE;
|
||||
mShowClipping = false;
|
||||
|
|
|
@ -36,6 +36,7 @@ class NoteTrack;
|
|||
class LabelTrack;
|
||||
class TimeTrack;
|
||||
class TrackList;
|
||||
class TrackPanel;
|
||||
class Ruler;
|
||||
class SelectedRegion;
|
||||
class ZoomInfo;
|
||||
|
@ -151,7 +152,7 @@ namespace TrackArt {
|
|||
class AUDACITY_DLL_API TrackArtist {
|
||||
|
||||
public:
|
||||
TrackArtist();
|
||||
TrackArtist( TrackPanel *parent_ );
|
||||
~TrackArtist();
|
||||
static TrackArtist *Get( TrackPanelDrawingContext & );
|
||||
|
||||
|
@ -169,6 +170,8 @@ public:
|
|||
|
||||
void UpdateVRuler(const Track *t, const wxRect & rect);
|
||||
|
||||
TrackPanel *parent;
|
||||
|
||||
// Preference values
|
||||
float mdBrange; // "/GUI/EnvdBRange"
|
||||
long mShowClipping; // "/GUI/ShowClipping"
|
||||
|
|
|
@ -237,7 +237,7 @@ TrackPanel::TrackPanel(wxWindow * parent, wxWindowID id,
|
|||
|
||||
mRedrawAfterStop = false;
|
||||
|
||||
mTrackArtist = std::make_unique<TrackArtist>();
|
||||
mTrackArtist = std::make_unique<TrackArtist>( this );
|
||||
|
||||
mTimeCount = 0;
|
||||
mTimer.parent = this;
|
||||
|
|
|
@ -3051,7 +3051,11 @@ void EqualizationPanel::OnPaint(wxPaintEvent & WXUNUSED(event))
|
|||
if( mEffect->mDraw->GetValue() )
|
||||
{
|
||||
ZoomInfo zoomInfo( 0.0, mEnvRect.width-1 );
|
||||
TrackArtist artist;
|
||||
|
||||
// Back pointer to TrackPanel won't be needed in the one drawing
|
||||
// function we use here
|
||||
TrackArtist artist( nullptr );
|
||||
|
||||
artist.pZoomInfo = &zoomInfo;
|
||||
TrackPanelDrawingContext context{ memDC, {}, {}, &artist };
|
||||
mEffect->mEnvelope->DrawPoints(
|
||||
|
|
|
@ -532,7 +532,7 @@ void OnPrint(const CommandContext &context)
|
|||
auto &project = context.project;
|
||||
auto name = project.GetName();
|
||||
auto tracks = project.GetTracks();
|
||||
HandlePrint(&project, name, tracks);
|
||||
HandlePrint(&project, name, tracks, *project.GetTrackPanel());
|
||||
}
|
||||
|
||||
void OnExit(const CommandContext &WXUNUSED(context) )
|
||||
|
|
Loading…
Reference in New Issue