/////////////////////////////////////////////////////////////////////////////
-// Name: printing.h
-// Purpose: Printing demo for wxWindows
+// Name: samples/printing.h
+// Purpose: Printing demo for wxWidgets
// Author: Julian Smart
// Modified by:
// Created: 1995
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface
-#endif
-
// Define a new application
class MyApp: public wxApp
{
- public:
- MyApp() ;
- bool OnInit();
- int OnExit();
+public:
+ MyApp() {}
+
+ virtual bool OnInit();
+ virtual int OnExit();
+
+ void Draw(wxDC& dc);
- wxFont m_testFont;
+ 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;
+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 OnPrintSetup(wxCommandEvent& event);
void OnPageSetup(wxCommandEvent& event);
#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW
void OnPrintPS(wxCommandEvent& event);
void OnPrintPreviewPS(wxCommandEvent& event);
- void OnPrintSetupPS(wxCommandEvent& event);
void OnPageSetupPS(wxCommandEvent& event);
#endif
+#ifdef __WXMAC__
+ void OnPageMargins(wxCommandEvent& event);
+#endif
void OnExit(wxCommandEvent& event);
void OnPrintAbout(wxCommandEvent& event);
-DECLARE_EVENT_TABLE()
+
+private:
+ MyCanvas* m_canvas;
+
+ 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; }
+
+ 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();
+ 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_PRINT_SETUP 102
+
+// constants:
+
#define WXPRINT_PAGE_SETUP 103
-#define WXPRINT_PREVIEW 104
#define WXPRINT_PRINT_PS 105
-#define WXPRINT_PRINT_SETUP_PS 106
#define WXPRINT_PAGE_SETUP_PS 107
#define WXPRINT_PREVIEW_PS 108
-#define WXPRINT_ABOUT 109
+#define WXPRINT_ANGLEUP 110
+#define WXPRINT_ANGLEDOWN 111
+#ifdef __WXMAC__
+ #define WXPRINT_PAGE_MARGINS 112
+#endif