/////////////////////////////////////////////////////////////////////////////
-// Name: printing.h
+// Name: samples/printing.h
// Purpose: Printing demo for wxWidgets
// Author: Julian Smart
// Modified by:
// Define a new application
class MyApp: public wxApp
{
- public:
- MyApp(){};
- bool OnInit();
- int OnExit();
+public:
+ MyApp() {}
- wxFont m_testFont;
+ virtual bool OnInit();
+ virtual int OnExit();
+
+ 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;
};
DECLARE_APP(MyApp)
-
class MyCanvas;
// Define a new canvas and frame
class MyFrame: public wxFrame
{
- public:
- MyCanvas *canvas;
- wxBitmap m_bitmap;
- int m_angle;
+public:
MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size);
- void Draw(wxDC& dc);
void OnAngleUp(wxCommandEvent& event);
void OnAngleDown(wxCommandEvent& event);
- void OnSize(wxSizeEvent& event);
void OnPrint(wxCommandEvent& event);
void OnPrintPreview(wxCommandEvent& event);
void OnPageSetup(wxCommandEvent& event);
-#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW
+#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);
-DECLARE_EVENT_TABLE()
+
+private:
+ MyCanvas* m_canvas;
+ wxPreviewFrameModalityKind m_previewModality;
+
+ DECLARE_EVENT_TABLE()
};
-// Define a new canvas which can receive some events
+// Define a new white canvas
class MyCanvas: public wxScrolledWindow
{
- public:
+public:
MyCanvas(wxFrame *frame, const wxPoint& pos, const wxSize& size, long style = wxRETAINED);
- ~MyCanvas(void){};
+ //void OnPaint(wxPaintEvent& evt);
virtual void OnDraw(wxDC& dc);
- void OnEvent(wxMouseEvent& event);
-DECLARE_EVENT_TABLE()
+private:
+ DECLARE_EVENT_TABLE()
};
+// Defines a new printout class to print our document
class MyPrintout: public wxPrintout
{
- public:
- MyPrintout(wxChar *title = _T("My printout")):wxPrintout(title) {}
- bool OnPrintPage(int page);
- bool HasPage(int page);
- bool OnBeginDocument(int startPage, int endPage);
- void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo);
-
- void DrawPageOne(wxDC *dc);
- void DrawPageTwo(wxDC *dc);
+public:
+ MyPrintout(MyFrame* frame, const wxString &title = wxT("My printout"))
+ : wxPrintout(title) { m_frame=frame; }
+
+ virtual bool OnPrintPage(int page);
+ virtual bool HasPage(int page);
+ virtual bool OnBeginDocument(int startPage, int endPage);
+ virtual void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo);
+
+ void DrawPageOne();
+ void DrawPageTwo();
+
+ // Writes a header on a page. Margin units are in millimetres.
+ bool WritePageHeader(wxPrintout *printout, wxDC *dc, const wxString& text, float mmToLogical);
+
+private:
+ MyFrame *m_frame;
};
-#define WXPRINT_QUIT 100
-#define WXPRINT_PRINT 101
-#define WXPRINT_PAGE_SETUP 103
-#define WXPRINT_PREVIEW 104
-#define WXPRINT_PRINT_PS 105
-#define WXPRINT_PAGE_SETUP_PS 107
-#define WXPRINT_PREVIEW_PS 108
+// constants:
+enum
+{
+ WXPRINT_PAGE_SETUP = 103,
+
+ WXPRINT_PRINT_PS,
+ WXPRINT_PAGE_SETUP_PS,
+ WXPRINT_PREVIEW_PS,
-#define WXPRINT_ABOUT 109
+ WXPRINT_ANGLEUP,
+ WXPRINT_ANGLEDOWN,
-#define WXPRINT_ANGLEUP 110
-#define WXPRINT_ANGLEDOWN 111
+#ifdef __WXMAC__
+ WXPRINT_PAGE_MARGINS,
+#endif
+
+ WXPRINT_FRAME_MODAL_APP,
+ WXPRINT_FRAME_MODAL_WIN,
+ WXPRINT_FRAME_MODAL_NON
+};