Robert Lang's patch [ 1583183 ] Fixes printing/print preview inconsistencies

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42522 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-10-27 13:07:40 +00:00
parent ea28077683
commit f415cab9ef
32 changed files with 1308 additions and 294 deletions

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dcprint.h
// Name: wx/mac/carbon/dcprint.h
// Purpose: wxPrinterDC class
// Author: Stefan Csomor
// Modified by:
@@ -31,6 +31,9 @@ class WXDLLEXPORT wxPrinterDC: public wxDC
virtual void EndDoc(void) ;
virtual void StartPage(void) ;
virtual void EndPage(void) ;
wxRect GetPaperRect();
wxPrintData& GetPrintData() { return m_printData; }
virtual wxSize GetPPI() const;
#if wxMAC_USE_CORE_GRAPHICS

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: printdlg.h
// Name: wx/mac/carbon/printdlg.h
// Purpose: wxPrintDialog, wxPageSetupDialog classes.
// Use generic, PostScript version if no
// platform-specific implementation.
@@ -58,21 +58,54 @@ private:
class WXDLLEXPORT wxMacPageSetupDialog: public wxPageSetupDialogBase
{
public:
wxMacPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL);
wxMacPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL);
virtual ~wxMacPageSetupDialog();
virtual wxPageSetupData& GetPageSetupDialogData();
bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL);
bool Create(wxWindow *parent, wxPageSetupData *data = NULL);
virtual int ShowModal();
private:
wxPageSetupDialogData m_pageSetupData;
wxPageSetupData m_pageSetupData;
wxWindow* m_dialogParent;
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacPageSetupDialog)
};
#endif
// _WX_PRINTDLG_H_
/*
* wxMacPageMarginsDialog
* A Mac dialog for setting the page margins separately from page setup since
* (native) wxMacPageSetupDialog doesn't let you set margins.
*/
class WXDLLEXPORT wxMacPageMarginsDialog : public wxDialog
{
public:
wxMacPageMarginsDialog(wxFrame* parent, wxPageSetupData* data);
bool TransferToWindow();
bool TransferDataFromWindow();
virtual wxPageSetupData& GetPageSetupDialogData() { return *m_pageSetupDialogData; }
private:
wxPageSetupData* m_pageSetupDialogData;
wxPoint m_MinMarginTopLeft;
wxPoint m_MinMarginBottomRight;
wxTextCtrl *m_LeftMargin;
wxTextCtrl *m_TopMargin;
wxTextCtrl *m_RightMargin;
wxTextCtrl *m_BottomMargin;
void GetMinMargins();
bool CheckValue(wxTextCtrl* textCtrl, int *value, int minValue, const wxString& name);
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacPageMarginsDialog)
};
#endif // _WX_PRINTDLG_H_

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: dcprint.h
// Name: wx/mac/classic/dcprint.h
// Purpose: wxPrinterDC class
// Author: Stefan Csomor
// Modified by:
@@ -31,6 +31,9 @@ class WXDLLEXPORT wxPrinterDC: public wxDC
virtual void EndDoc(void) ;
virtual void StartPage(void) ;
virtual void EndPage(void) ;
wxRect GetPaperRect();
wxPrintData& GetPrintData() { return m_printData; }
virtual void DoGetSize( int *width, int *height ) const;

View File

@@ -59,11 +59,43 @@ class WXDLLEXPORT wxPageSetupDialog: public wxDialog
bool Create(wxWindow *parent, wxPageSetupData *data = NULL);
virtual int ShowModal();
inline wxPageSetupData& GetPageSetupData() { return m_pageSetupData; }
virtual wxPageSetupData& GetPageSetupDialogData() { return m_pageSetupData; }
private:
wxPageSetupData m_pageSetupData;
wxWindow* m_dialogParent;
};
#endif
// _WX_PRINTDLG_H_
/*
* wxMacPageMarginsDialog
* A Mac dialog for setting the page margins separately from page setup since
* (native) wxMacPageSetupDialog doesn't let you set margins.
*/
class WXDLLEXPORT wxMacPageMarginsDialog : public wxDialog
{
public:
wxMacPageMarginsDialog(wxFrame* parent, wxPageSetupData* data);
bool TransferToWindow();
bool TransferDataFromWindow();
virtual wxPageSetupData& GetPageSetupDialogData() { return *m_pageSetupDialogData; }
private:
wxPageSetupData* m_pageSetupDialogData;
wxPoint m_MinMarginTopLeft;
wxPoint m_MinMarginBottomRight;
wxTextCtrl *m_LeftMargin;
wxTextCtrl *m_TopMargin;
wxTextCtrl *m_RightMargin;
wxTextCtrl *m_BottomMargin;
void GetMinMargins();
bool CheckValue(wxTextCtrl* textCtrl, int *value, int minValue, const wxString& name);
private:
DECLARE_DYNAMIC_CLASS_NO_COPY(wxMacPageMarginsDialog)
};
#endif // _WX_PRINTDLG_H_