class WXDLLIMPEXP_FWD_CORE wxPrintFactory;
class WXDLLIMPEXP_FWD_CORE wxPrintNativeDataBase;
class WXDLLIMPEXP_FWD_CORE wxPrintPreview;
+class WXDLLIMPEXP_FWD_CORE wxPrintAbortDialog;
+class WXDLLIMPEXP_FWD_CORE wxStaticText;
class wxPrintPageMaxCtrl;
class wxPrintPageTextCtrl;
wxPRINTER_ERROR
};
+// Preview frame modality kind used with wxPreviewFrame::Initialize()
+enum wxPreviewFrameModalityKind
+{
+ // Disable all the other top level windows while the preview is shown.
+ wxPreviewFrame_AppModal,
+
+ // Disable only the parent window while the preview is shown.
+ wxPreviewFrame_WindowModal,
+
+ // Don't disable any windows.
+ wxPreviewFrame_NonModal
+};
+
//----------------------------------------------------------------------------
// wxPrintFactory
//----------------------------------------------------------------------------
wxPrinterBase(wxPrintDialogData *data = NULL);
virtual ~wxPrinterBase();
- virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout);
+ virtual wxPrintAbortDialog *CreateAbortWindow(wxWindow *parent, wxPrintout *printout);
virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message);
virtual wxPrintDialogData& GetPrintDialogData() const;
wxPrinter(wxPrintDialogData *data = NULL);
virtual ~wxPrinter();
- virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout);
+ virtual wxPrintAbortDialog *CreateAbortWindow(wxWindow *parent, wxPrintout *printout);
virtual void ReportError(wxWindow *parent, wxPrintout *printout, const wxString& message);
virtual bool Setup(wxWindow *parent);
const wxString& name = wxFrameNameStr);
virtual ~wxPreviewFrame();
+ // Either Initialize() or InitializeWithModality() must be called before
+ // showing the preview frame, the former being just a particular case of
+ // the latter initializing the frame for being showing app-modally.
+
+ // Notice that we must keep Initialize() with its existing signature to
+ // avoid breaking the old code that overrides it and we can't reuse the
+ // same name for the other functions to avoid virtual function hiding
+ // problem and the associated warnings given by some compilers (e.g. from
+ // g++ with -Woverloaded-virtual).
+ virtual void Initialize()
+ {
+ InitializeWithModality(wxPreviewFrame_AppModal);
+ }
+
+ // Also note that this method is not virtual as it doesn't need to be
+ // overridden: it's never called by wxWidgets (of course, the same is true
+ // for Initialize() but, again, it must remain virtual for compatibility).
+ void InitializeWithModality(wxPreviewFrameModalityKind kind);
+
void OnCloseWindow(wxCloseEvent& event);
- virtual void Initialize();
virtual void CreateCanvas();
virtual void CreateControlBar();
wxPrintPreviewBase* m_printPreview;
wxWindowDisabler* m_windowDisabler;
+ wxPreviewFrameModalityKind m_modalityKind;
+
+
private:
void OnChar(wxKeyEvent& event);
{
public:
wxPrintAbortDialog(wxWindow *parent,
- const wxString& title,
+ const wxString& documentTitle,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
- long style = 0,
- const wxString& name = wxT("dialog"))
- : wxDialog(parent, wxID_ANY, title, pos, size, style, name)
- {
- }
+ long style = wxDEFAULT_DIALOG_STYLE,
+ const wxString& name = wxT("dialog"));
+
+ void SetProgress(int currentPage, int totalPages,
+ int currentCopy, int totalCopies);
void OnCancel(wxCommandEvent& event);
private:
+ wxStaticText *m_progress;
+
DECLARE_EVENT_TABLE()
wxDECLARE_NO_COPY_CLASS(wxPrintAbortDialog);
};