// Modified by:
// Created: 04/01/98
// RCS-ID: $Id$
-// Copyright: (c) Julian Smart and Markus Holzem
-// Licence: wxWindows license
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ===========================================================================
// headers
// ---------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "printdlg.h"
#endif
#pragma hdrstop
#endif
-#include "wx/printdlg.h"
-#include "wx/dcprint.h"
+// Don't use the Windows print dialog if we're in wxUniv mode and using
+// the PostScript architecture
+#if wxUSE_PRINTING_ARCHITECTURE && (!defined(__WXUNIVERSAL__) || !wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW)
-// Have to emulate page setup dialog for Win16
-#if !defined(__WIN95__)
- #include "wx/generic/prntdlgg.h"
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
#endif
+#include "wx/printdlg.h"
+#include "wx/dcprint.h"
+
#include <stdlib.h>
#include "wx/msw/private.h"
// wxWin macros
// ---------------------------------------------------------------------------
-#if !USE_SHARED_LIBRARY
IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog)
IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog)
-#endif
// ===========================================================================
// implementation
{
m_dialogParent = NULL;
m_printerDC = NULL;
- m_destroyDC = TRUE;
+ m_destroyDC = true;
}
wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintDialogData* data)
{
m_dialogParent = p;
m_printerDC = NULL;
- m_destroyDC = TRUE;
+ m_destroyDC = true;
if ( data )
m_printDialogData = *data;
m_printDialogData.SetOwnerWindow(p);
- return TRUE;
+ return true;
}
wxPrintDialog::~wxPrintDialog()
{
m_printDialogData.ConvertToNative();
- bool ret = (PrintDlg( (PRINTDLG *)m_printDialogData.GetNativeData() ) != 0);
- if ( ret != FALSE && ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC)
+ PRINTDLG* p = (PRINTDLG *)m_printDialogData.GetNativeData() ;
+ if (m_dialogParent)
+ p->hwndOwner = (HWND) m_dialogParent->GetHWND();
+ else if (wxTheApp->GetTopWindow())
+ p->hwndOwner = (HWND) wxTheApp->GetTopWindow()->GetHWND();
+ else
+ p->hwndOwner = 0;
+
+ bool ret = (PrintDlg( p ) != 0);
+
+ p->hwndOwner = 0;
+
+ if ( ret != false && ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC)
{
wxPrinterDC *pdc = new wxPrinterDC((WXHDC) ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC);
m_printerDC = pdc;
{
if (m_printerDC)
{
- m_destroyDC = FALSE;
+ m_destroyDC = false;
return m_printerDC;
}
else
#if defined(__WIN95__)
m_pageSetupData.SetOwnerWindow(p);
#endif
- return TRUE;
+ return true;
}
wxPageSetupDialog::~wxPageSetupDialog()
{
#ifdef __WIN95__
m_pageSetupData.ConvertToNative();
- if (PageSetupDlg( (PAGESETUPDLG *)m_pageSetupData.GetNativeData() ))
+ PAGESETUPDLG *p = (PAGESETUPDLG *)m_pageSetupData.GetNativeData();
+ if (m_dialogParent)
+ p->hwndOwner = (HWND) m_dialogParent->GetHWND();
+ else if (wxTheApp->GetTopWindow())
+ p->hwndOwner = (HWND) wxTheApp->GetTopWindow()->GetHWND();
+ else
+ p->hwndOwner = 0;
+ BOOL retVal = PageSetupDlg( p ) ;
+ p->hwndOwner = 0;
+ if (retVal)
{
m_pageSetupData.ConvertFromNative();
return wxID_OK;
wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData);
int ret = genericPageSetupDialog->ShowModal();
m_pageSetupData = genericPageSetupDialog->GetPageSetupData();
- genericPageSetupDialog->Close(TRUE);
+ genericPageSetupDialog->Close(true);
return ret;
#endif
}
+#endif
+ // wxUSE_PRINTING_ARCHITECTURE