wxWidgets/samples/printing/printing.h
Maarten Bent 8665960c55 Simplify printing and drawing sample constructors
Don't use FromDIP for 0.
Include DIP in drawing sample variable and function names to make it clear these sizes are in DIP.
Show both logical and DIP coordinates in statusbar.
2022-04-26 21:25:55 +02:00

128 lines
2.9 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: samples/printing.h
// Purpose: Printing demo for wxWidgets
// Author: Julian Smart
// Modified by:
// Created: 1995
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// Define a new application
class MyApp: public wxApp
{
public:
MyApp() {}
virtual bool OnInit() wxOVERRIDE;
virtual int OnExit() wxOVERRIDE;
void Draw(wxDC& dc);
void IncrementAngle()
{ m_angle += 5; }
void DecrementAngle()
{ m_angle -= 5; }
wxFont& GetTestFont()
{ return m_testFont; }
private:
int m_angle;
wxBitmap m_bitmap;
wxFont m_testFont;
};
wxDECLARE_APP(MyApp);
class MyCanvas;
// Define a new canvas and frame
class MyFrame: public wxFrame
{
public:
MyFrame(const wxString& title);
void OnAngleUp(wxCommandEvent& event);
void OnAngleDown(wxCommandEvent& event);
void OnPrint(wxCommandEvent& event);
void OnPrintPreview(wxCommandEvent& event);
void OnPageSetup(wxCommandEvent& event);
#if wxUSE_POSTSCRIPT
void OnPrintPS(wxCommandEvent& event);
void OnPrintPreviewPS(wxCommandEvent& event);
void OnPageSetupPS(wxCommandEvent& event);
#endif
#ifdef __WXMAC__
void OnPageMargins(wxCommandEvent& event);
#endif
void OnPreviewFrameModalityKind(wxCommandEvent& event);
void OnExit(wxCommandEvent& event);
void OnPrintAbout(wxCommandEvent& event);
private:
MyCanvas* m_canvas;
wxPreviewFrameModalityKind m_previewModality;
wxDECLARE_EVENT_TABLE();
};
// Define a new white canvas
class MyCanvas: public wxScrolledWindow
{
public:
MyCanvas(wxFrame *frame, long style);
//void OnPaint(wxPaintEvent& evt);
virtual void OnDraw(wxDC& dc) wxOVERRIDE;
private:
wxDECLARE_EVENT_TABLE();
};
// Defines a new printout class to print our document
class MyPrintout: public wxPrintout
{
public:
MyPrintout(MyFrame* frame, const wxString &title = "My printout")
: wxPrintout(title) { m_frame=frame; }
virtual bool OnPrintPage(int page) wxOVERRIDE;
virtual bool HasPage(int page) wxOVERRIDE;
virtual bool OnBeginDocument(int startPage, int endPage) wxOVERRIDE;
virtual void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo) wxOVERRIDE;
void DrawPageOne();
void DrawPageTwo();
// Writes a header on a page. Margin units are in millimetres.
bool WritePageHeader(wxPrintout *printout, wxDC *dc, const wxString& text, double mmToLogical);
private:
MyFrame *m_frame;
};
// constants:
enum
{
WXPRINT_PAGE_SETUP = 103,
WXPRINT_PRINT_PS,
WXPRINT_PAGE_SETUP_PS,
WXPRINT_PREVIEW_PS,
WXPRINT_ANGLEUP,
WXPRINT_ANGLEDOWN,
#ifdef __WXMAC__
WXPRINT_PAGE_MARGINS,
#endif
WXPRINT_FRAME_MODAL_APP,
WXPRINT_FRAME_MODAL_WIN,
WXPRINT_FRAME_MODAL_NON
};