printdlg.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/msw/printdlg.h
  3. // Purpose: wxPrintDialog, wxPageSetupDialog classes
  4. // Author: Julian Smart
  5. // Modified by:
  6. // Created: 01/02/97
  7. // Copyright: (c) Julian Smart
  8. // Licence: wxWindows licence
  9. /////////////////////////////////////////////////////////////////////////////
  10. #ifndef _WX_PRINTDLG_H_
  11. #define _WX_PRINTDLG_H_
  12. #if wxUSE_PRINTING_ARCHITECTURE
  13. #include "wx/dialog.h"
  14. #include "wx/cmndata.h"
  15. #include "wx/prntbase.h"
  16. #include "wx/printdlg.h"
  17. class WXDLLIMPEXP_FWD_CORE wxDC;
  18. class WinPrinter;
  19. //----------------------------------------------------------------------------
  20. // wxWindowsPrintNativeData
  21. //----------------------------------------------------------------------------
  22. class WXDLLIMPEXP_CORE wxWindowsPrintNativeData: public wxPrintNativeDataBase
  23. {
  24. public:
  25. wxWindowsPrintNativeData();
  26. virtual ~wxWindowsPrintNativeData();
  27. virtual bool TransferTo( wxPrintData &data );
  28. virtual bool TransferFrom( const wxPrintData &data );
  29. virtual bool Ok() const { return IsOk(); }
  30. virtual bool IsOk() const;
  31. void InitializeDevMode(const wxString &printerName = wxEmptyString, WinPrinter* printer = NULL);
  32. void* GetDevMode() const { return m_devMode; }
  33. void SetDevMode(void* data) { m_devMode = data; }
  34. void* GetDevNames() const { return m_devNames; }
  35. void SetDevNames(void* data) { m_devNames = data; }
  36. private:
  37. void* m_devMode;
  38. void* m_devNames;
  39. short m_customWindowsPaperId;
  40. private:
  41. DECLARE_DYNAMIC_CLASS(wxWindowsPrintNativeData)
  42. };
  43. // ---------------------------------------------------------------------------
  44. // wxWindowsPrintDialog: the MSW dialog for printing
  45. // ---------------------------------------------------------------------------
  46. class WXDLLIMPEXP_CORE wxWindowsPrintDialog : public wxPrintDialogBase
  47. {
  48. public:
  49. wxWindowsPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL);
  50. wxWindowsPrintDialog(wxWindow *parent, wxPrintData* data);
  51. virtual ~wxWindowsPrintDialog();
  52. bool Create(wxWindow *parent, wxPrintDialogData* data = NULL);
  53. virtual int ShowModal();
  54. wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; }
  55. wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); }
  56. virtual wxDC *GetPrintDC();
  57. private:
  58. wxPrintDialogData m_printDialogData;
  59. wxPrinterDC* m_printerDC;
  60. bool m_destroyDC;
  61. wxWindow* m_dialogParent;
  62. private:
  63. bool ConvertToNative( wxPrintDialogData &data );
  64. bool ConvertFromNative( wxPrintDialogData &data );
  65. // holds MSW handle
  66. void* m_printDlg;
  67. private:
  68. wxDECLARE_NO_COPY_CLASS(wxWindowsPrintDialog);
  69. DECLARE_CLASS(wxWindowsPrintDialog)
  70. };
  71. // ---------------------------------------------------------------------------
  72. // wxWindowsPageSetupDialog: the MSW page setup dialog
  73. // ---------------------------------------------------------------------------
  74. class WXDLLIMPEXP_CORE wxWindowsPageSetupDialog: public wxPageSetupDialogBase
  75. {
  76. public:
  77. wxWindowsPageSetupDialog();
  78. wxWindowsPageSetupDialog(wxWindow *parent, wxPageSetupDialogData *data = NULL);
  79. virtual ~wxWindowsPageSetupDialog();
  80. bool Create(wxWindow *parent, wxPageSetupDialogData *data = NULL);
  81. virtual int ShowModal();
  82. bool ConvertToNative( wxPageSetupDialogData &data );
  83. bool ConvertFromNative( wxPageSetupDialogData &data );
  84. virtual wxPageSetupDialogData& GetPageSetupDialogData() { return m_pageSetupData; }
  85. private:
  86. wxPageSetupDialogData m_pageSetupData;
  87. wxWindow* m_dialogParent;
  88. // holds MSW handle
  89. void* m_pageDlg;
  90. private:
  91. DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPageSetupDialog)
  92. };
  93. #endif // wxUSE_PRINTING_ARCHITECTURE
  94. #endif
  95. // _WX_PRINTDLG_H_