20#include <wx/printdlg.h>
47 static wxPrintData theData;
61 bool OnPrintPage(
int page);
62 bool HasPage(
int page);
63 bool OnBeginDocument(
int startPage,
int endPage);
64 void GetPageInfo(
int *minPage,
int *maxPage,
65 int *selPageFrom,
int *selPageTo);
72bool AudacityPrintout::OnPrintPage(
int WXUNUSED(page))
79 dc->GetSize(&width, &height);
81 int rulerScreenHeight = 40;
82 int screenTotalHeight =
85 double scale = height / (double)screenTotalHeight;
87 int rulerPageHeight = (int)(rulerScreenHeight * scale);
97 *wxWHITE_PEN, *wxWHITE_PEN);
98 const double screenDuration = mTracks->GetEndTime();
101 ZoomInfo zoomInfo(0.0, width / screenDuration);
103 int y = rulerPageHeight;
105 for (
auto n : mTracks->Any()) {
114 auto trackHeight = (int)(view.GetHeight() * scale);
115 r.height = trackHeight;
117 const auto subViews = view.GetSubViews( r );
118 if (subViews.empty())
121 auto iter = subViews.begin(),
end = subViews.end(), next = iter;
122 auto yy = iter->first;
123 for ( ; iter !=
end; iter = next ) {
125 auto nextY = ( next ==
end )
129 r.SetHeight( nextY - yy );
138 dc->SetPen(*wxBLACK_PEN);
147bool AudacityPrintout::HasPage(
int page)
152bool AudacityPrintout::OnBeginDocument(
int startPage,
int endPage)
154 return wxPrintout::OnBeginDocument(startPage, endPage);
157void AudacityPrintout::GetPageInfo(
int *minPage,
int *maxPage,
158 int *selPageFrom,
int *selPageTo)
168 wxPageSetupData pageSetupData;
170 wxPageSetupDialog pageSetupDialog(parent, &pageSetupData);
171 pageSetupDialog.ShowModal();
173 gPrintData() = pageSetupDialog.GetPageSetupData().GetPrintData();
180 wxPrintDialogData printDialogData(
gPrintData());
182 wxPrinter printer(&printDialogData);
184 if (!printer.Print(parent, &printout,
true)) {
185 if (wxPrinter::GetLastError() == wxPRINTER_ERROR) {
187 XO(
"There was a problem printing."),
196 gPrintData() = printer.GetPrintDialogData().GetPrintData();
202 auto &project = context.
project;
209 auto &project = context.
project;
210 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
static const LinearUpdater & Instance()
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)
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::unique_ptr< IndirectItem > Indirect(const BaseItemSharedPtr &ptr)
A convenience function.
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)