20#include <wx/printdlg.h>
44 static wxPrintData theData;
58 bool OnPrintPage(
int page);
59 bool HasPage(
int page);
60 bool OnBeginDocument(
int startPage,
int endPage);
61 void GetPageInfo(
int *minPage,
int *maxPage,
62 int *selPageFrom,
int *selPageTo);
69bool AudacityPrintout::OnPrintPage(
int WXUNUSED(page))
76 dc->GetSize(&width, &height);
78 int rulerScreenHeight = 40;
79 int screenTotalHeight =
82 double scale = height / (double)screenTotalHeight;
84 int rulerPageHeight = (int)(rulerScreenHeight * scale);
95 *wxWHITE_PEN, *wxWHITE_PEN);
96 const double screenDuration = mTracks->GetEndTime();
99 ZoomInfo zoomInfo(0.0, width / screenDuration);
101 int y = rulerPageHeight;
103 for (
auto n : mTracks->Any()) {
112 auto trackHeight = (int)(view.GetHeight() * scale);
113 r.height = trackHeight;
115 const auto subViews = view.GetSubViews( r );
116 if (subViews.empty())
119 auto iter = subViews.begin(),
end = subViews.end(), next = iter;
120 auto yy = iter->first;
121 for ( ; iter !=
end; iter = next ) {
123 auto nextY = ( next ==
end )
127 r.SetHeight( nextY - yy );
136 dc->SetPen(*wxBLACK_PEN);
145bool AudacityPrintout::HasPage(
int page)
150bool AudacityPrintout::OnBeginDocument(
int startPage,
int endPage)
152 return wxPrintout::OnBeginDocument(startPage, endPage);
155void AudacityPrintout::GetPageInfo(
int *minPage,
int *maxPage,
156 int *selPageFrom,
int *selPageTo)
166 wxPageSetupData pageSetupData;
168 wxPageSetupDialog pageSetupDialog(parent, &pageSetupData);
169 pageSetupDialog.ShowModal();
171 gPrintData() = pageSetupDialog.GetPageSetupData().GetPrintData();
178 wxPrintDialogData printDialogData(
gPrintData());
180 wxPrinter printer(&printDialogData);
182 if (!printer.Print(parent, &printout,
true)) {
183 if (wxPrinter::GetLastError() == wxPRINTER_ERROR) {
185 XO(
"There was a problem printing."),
194 gPrintData() = printer.GetPrintDialogData().GetPrintData();
200 auto &project = context.
project;
207 auto &project = context.
project;
208 auto name = project.GetProjectName();
int AudacityMessageBox(const TranslatableString &message, const TranslatableString &caption, long style, wxWindow *parent, int x, int y)
const ReservedCommandFlag & AudioIONotBusyFlag()
const ReservedCommandFlag & TracksExistFlag()
const TranslatableString name
XXO("&Cut/Copy/Paste Toolbar")
AUDACITY_DLL_API wxFrame & GetProjectFrame(AudacityProject &project)
Get the top-level window associated with the project (as a wxFrame only, when you do not need to use ...
accessors for certain important windows associated with each project
declares abstract base class Track, TrackList, and iterators over TrackList
static void Line(wxDC &dc, wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2)
CommandContext provides additional information to an 'Apply()' command. It provides the project,...
AudacityProject & project
void SetOrientation(int orient)
void Draw(wxDC &dc) const
void SetLabelEdges(bool labelEdges)
void SetBounds(int left, int top, int right, int bottom)
void SetRange(double min, double max)
void SetFormat(RulerFormat format)
Defines a selected portion of a project.
This class handles the actual rendering of WaveTracks (both waveforms and spectra),...
void SetBackgroundBrushes(wxBrush unselectedBrushIn, wxBrush selectedBrushIn, wxPen unselectedPenIn, wxPen selectedPenIn)
const SelectedRegion * pSelectedRegion
A flat linked list of tracks supporting Add, Remove, Clear, and Contains, serialization of the list o...
static TrackList & Get(AudacityProject &project)
The TrackPanel class coordinates updates and operations on the main part of the screen which contains...
static TrackPanel & Get(AudacityProject &project)
static int GetTotalHeight(const TrackList &list)
static TrackView & Get(Track &)
AudacityPrintout(wxString title, TrackList *tracks, TrackPanel &panel)
auto end(const Ptr< Type, BaseDeleter > &p)
Enables range-for.
std::shared_ptr< BaseItem > BaseItemSharedPtr
wxPrintData & gPrintData()
void OnPrint(const CommandContext &context)
void OnPageSetup(const CommandContext &context)
void HandlePageSetup(wxWindow *parent)
BaseItemSharedPtr PrintingItems()
void HandlePrint(wxWindow *parent, const wxString &name, TrackList *tracks, TrackPanel &panel)