/////////////////////////////////////////////////////////////////////////////
// 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() {}
+
+ 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;
- 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);
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(const 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);
+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 DrawPageOne();
+ void DrawPageTwo();
- 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
+
+// constants:
+
#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
-#define WXPRINT_ABOUT 109
-
#define WXPRINT_ANGLEUP 110
#define WXPRINT_ANGLEDOWN 111