X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c0c133e13b36a923c65f94499554e432bc3a0daa..c21a9bda7aa6b18c0729076ce2910e05dab4b6b7:/include/wx/prntbase.h diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h index 0a6aecaa46..c47a9632e5 100644 --- a/include/wx/prntbase.h +++ b/include/wx/prntbase.h @@ -39,6 +39,8 @@ class WXDLLIMPEXP_FWD_CORE wxPreviewControlBar; class WXDLLIMPEXP_FWD_CORE wxPreviewFrame; class WXDLLIMPEXP_FWD_CORE wxPrintFactory; class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase; +class WXDLLIMPEXP_FWD_CORE wxPrintPreview; +class wxPrintPageTextCtrl; //---------------------------------------------------------------------------- // error consts @@ -243,7 +245,7 @@ private: class WXDLLIMPEXP_CORE wxPrintout: public wxObject { public: - wxPrintout(const wxString& title = wxT("Printout")); + wxPrintout(const wxString& title = _("Printout")); virtual ~wxPrintout(); virtual bool OnBeginDocument(int startPage, int endPage); @@ -293,13 +295,17 @@ public: void SetPaperRectPixels(const wxRect& paperRectPixels) { m_paperRectPixels = paperRectPixels; } wxRect GetPaperRectPixels() const { return m_paperRectPixels; } - virtual bool IsPreview() const { return m_isPreview; } + // This must be called by wxPrintPreview to associate itself with the + // printout it uses. + virtual void SetPreview(wxPrintPreview *preview) { m_preview = preview; } - virtual void SetIsPreview(bool p) { m_isPreview = p; } + wxPrintPreview *GetPreview() const { return m_preview; } + virtual bool IsPreview() const { return GetPreview() != NULL; } private: wxString m_printoutTitle; wxDC* m_printoutDC; + wxPrintPreview *m_preview; int m_pageWidthPixels; int m_pageHeightPixels; @@ -314,8 +320,6 @@ private: wxRect m_paperRectPixels; - bool m_isPreview; - private: DECLARE_ABSTRACT_CLASS(wxPrintout) wxDECLARE_NO_COPY_CLASS(wxPrintout); @@ -373,7 +377,7 @@ class WXDLLIMPEXP_CORE wxPreviewFrame: public wxFrame public: wxPreviewFrame(wxPrintPreviewBase *preview, wxWindow *parent, - const wxString& title = wxT("Print Preview"), + const wxString& title = _("Print Preview"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE | wxFRAME_FLOAT_ON_PARENT, @@ -431,6 +435,8 @@ private: #define wxID_PREVIEW_FIRST 6 #define wxID_PREVIEW_LAST 7 #define wxID_PREVIEW_GOTO 8 +#define wxID_PREVIEW_ZOOM_IN 9 +#define wxID_PREVIEW_ZOOM_OUT 10 class WXDLLIMPEXP_CORE wxPreviewControlBar: public wxPanel { @@ -452,35 +458,64 @@ public: virtual wxPrintPreviewBase *GetPrintPreview() const { return m_printPreview; } + + // Implementation only from now on. void OnWindowClose(wxCommandEvent& event); void OnNext(); void OnPrevious(); void OnFirst(); void OnLast(); - void OnGoto(); + void OnGotoPage(); void OnPrint(); + void OnPrintButton(wxCommandEvent& WXUNUSED(event)) { OnPrint(); } void OnNextButton(wxCommandEvent & WXUNUSED(event)) { OnNext(); } void OnPreviousButton(wxCommandEvent & WXUNUSED(event)) { OnPrevious(); } void OnFirstButton(wxCommandEvent & WXUNUSED(event)) { OnFirst(); } void OnLastButton(wxCommandEvent & WXUNUSED(event)) { OnLast(); } - void OnGotoButton(wxCommandEvent & WXUNUSED(event)) { OnGoto(); } - void OnZoom(wxCommandEvent& event); void OnPaint(wxPaintEvent& event); + void OnUpdateNextButton(wxUpdateUIEvent& event) + { event.Enable(IsNextEnabled()); } + void OnUpdatePreviousButton(wxUpdateUIEvent& event) + { event.Enable(IsPreviousEnabled()); } + void OnUpdateFirstButton(wxUpdateUIEvent& event) + { event.Enable(IsFirstEnabled()); } + void OnUpdateLastButton(wxUpdateUIEvent& event) + { event.Enable(IsLastEnabled()); } + void OnUpdateZoomInButton(wxUpdateUIEvent& event) + { event.Enable(IsZoomInEnabled()); } + void OnUpdateZoomOutButton(wxUpdateUIEvent& event) + { event.Enable(IsZoomOutEnabled()); } + + // These methods are not private because they are called by wxPreviewCanvas. + void DoZoomIn(); + void DoZoomOut(); + protected: wxPrintPreviewBase* m_printPreview; wxButton* m_closeButton; - wxButton* m_nextPageButton; - wxButton* m_previousPageButton; - wxButton* m_printButton; wxChoice* m_zoomControl; - wxButton* m_firstPageButton; - wxButton* m_lastPageButton; - wxButton* m_gotoPageButton; + wxPrintPageTextCtrl* m_currentPageText; + long m_buttonFlags; private: + void DoGotoPage(int page); + + void DoZoom(); + + bool IsNextEnabled() const; + bool IsPreviousEnabled() const; + bool IsFirstEnabled() const; + bool IsLastEnabled() const; + bool IsZoomInEnabled() const; + bool IsZoomOutEnabled() const; + + void OnZoomInButton(wxCommandEvent & WXUNUSED(event)) { DoZoomIn(); } + void OnZoomOutButton(wxCommandEvent & WXUNUSED(event)) { DoZoomOut(); } + void OnZoomChoice(wxCommandEvent& WXUNUSED(event)) { DoZoom(); } + DECLARE_EVENT_TABLE() wxDECLARE_NO_COPY_CLASS(wxPreviewControlBar); };