]> git.saurik.com Git - wxWidgets.git/commitdiff
Removed Pango homemade implementation and
authorRobert Roebling <robert@roebling.de>
Wed, 27 Oct 2004 22:55:30 +0000 (22:55 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 27 Oct 2004 22:55:30 +0000 (22:55 +0000)
    reinstated old code that uses /Times and
    /Helv etc for printing PostScript.
  Various smaller fixes related to printing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/dcpsg.h
src/common/cmndata.cpp
src/generic/dcpsg.cpp
src/generic/printps.cpp
src/generic/prntdlgg.cpp

index a71086fcde433dfedfd7dfd418f27c27d8649128..234feb4a469d72df704234392bafea55725cf188 100644 (file)
@@ -46,12 +46,6 @@ public:
     // Recommended destructor :-)
     ~wxPostScriptDC();
 
-#if WXWIN_COMPATIBILITY_2_2
-    wxPostScriptDC( const wxString &output, bool interactive = false, wxWindow *parent = NULL )
-        { Create( output, interactive, parent ); }
-    bool Create ( const wxString &output, bool interactive = false, wxWindow *parent = NULL );
-#endif
-
   virtual bool Ok() const;
 
   virtual void BeginDrawing() {}
@@ -142,11 +136,6 @@ private:
     static float ms_PSScaleFactor;
 
 protected:
-#if wxUSE_PANGO
-    PangoContext *m_context;
-    PangoLayout *m_layout;
-    PangoFontDescription *m_fontdesc;
-#endif
 
     FILE*             m_pstream;    // PostScript output stream
     wxString          m_title;
@@ -163,50 +152,6 @@ private:
     DECLARE_DYNAMIC_CLASS(wxPostScriptDC)
 };
 
-
-#if WXWIN_COMPATIBILITY_2_2
-// Print Orientation
-enum
-{
-    PS_PORTRAIT = wxPORTRAIT,
-    PS_LANDSCAPE = wxLANDSCAPE
-};
-
-// Print Actions
-enum
-{
-    PS_NONE = wxPRINT_MODE_NONE,
-    PS_PREVIEW = wxPRINT_MODE_PREVIEW,
-    PS_FILE = wxPRINT_MODE_FILE,
-    PS_PRINTER = wxPRINT_MODE_PRINTER
-};
-
-class wxPrintSetupData: public wxPrintData
-{
-public:
-    wxPrintSetupData() {}
-
-    void SetPrinterOrientation( int orient )
-        { SetOrientation( orient ); }
-    void SetPrinterMode( wxPrintMode mode )
-        { SetPrintMode( mode ); }
-    void SetAFMPath( const wxString &path )
-        { SetFontMetricPath( path ); }
-
-    void SetPaperName(const wxString& paper) { m_paperName = paper; }
-    void SetPrinterFile(const wxString& file) { m_printerFile = file; }
-    wxString GetPaperName() const { return m_paperName; }
-    wxString GetPrinterFile() const { return m_printerFile; };
-
-    wxString        m_paperName;
-    wxString        m_printerFile;
-};
-
-WXDLLEXPORT_DATA(extern wxPrintSetupData*) wxThePrintSetupData;
-WXDLLEXPORT extern void wxInitializePrintSetupData(bool init = true);
-#endif
-
-
 #endif
     // wxUSE_POSTSCRIPT
 
index 42fca798346952e8726064407aff1a2596ed2523..a37373c110b08f53f22777343aebc58894d6cac4 100644 (file)
@@ -230,6 +230,7 @@ void wxPrintData::operator=(const wxPrintData& data)
     m_paperSize = data.m_paperSize;
     m_bin = data.m_bin;
     m_printMode = data.m_printMode;
+    m_filename = data.m_filename;   
     
     m_nativeData = data.GetNativeData();
     m_nativeData->m_ref++;
index 2e423e5501557b4f70021b7828eb9b72b01325e3..f59a161f7ade9ce1765a2dec8729d1ee61528a7d 100644 (file)
 #include "wx/generic/prntdlgg.h"
 #include "wx/paper.h"
 #include "wx/filefn.h"
-#if WXWIN_COMPATIBILITY_2_2
-    #include "wx/window.h"
-    #include "wx/printdlg.h"
-#endif
 
 #include <math.h>
 
@@ -201,8 +197,6 @@ static const char *wxPostScriptHeaderColourImage = "\
   } ifelse          % end of 'false' case\n\
 ";
 
-#if wxUSE_PANGO
-#else
 static char wxPostScriptHeaderReencodeISO1[] =
     "\n/reencodeISO {\n"
 "dup dup findfont dup length dict begin\n"
@@ -243,7 +237,6 @@ static char wxPostScriptHeaderReencodeISO2[] =
 "/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis\n"
 "/yacute/thorn/ydieresis\n"
         "] def\n\n";
-#endif
 
 //-------------------------------------------------------------------------------
 // wxPostScriptDC
@@ -316,31 +309,6 @@ wxPostScriptDC::~wxPostScriptDC ()
     }
 }
 
-#if WXWIN_COMPATIBILITY_2_2
-bool wxPostScriptDC::Create( const wxString &output, bool interactive, wxWindow *parent )
-{
-    wxPrintData data;
-    data.SetFilename( output );
-    data.SetPrintMode( wxPRINT_MODE_FILE );
-
-    if (interactive)
-    {
-        wxPrintDialogData ddata( data );
-        wxPrintDialog dialog( parent, &data );
-        dialog.GetPrintDialogData().SetSetupDialog(true);
-        if (dialog.ShowModal() != wxID_OK)
-        {
-            m_ok = false;
-            return false;
-        }
-        data = dialog.GetPrintDialogData().GetPrintData();
-    }
-
-    return true;
-}
-#endif
-
-
 bool wxPostScriptDC::Ok() const
 {
   return m_ok;
@@ -941,8 +909,6 @@ void wxPostScriptDC::SetFont( const wxFont& font )
 
     m_font = font;
 
-#if wxUSE_PANGO
-#else
     int Style = m_font.GetStyle();
     int Weight = m_font.GetWeight();
 
@@ -1029,7 +995,6 @@ void wxPostScriptDC::SetFont( const wxFont& font )
     for (int i = 0; i < 100; i++)
         if (buffer[i] == ',') buffer[i] = '.';
     PsPrint( buffer );
-#endif // !wxUSE_PANGO
 }
 
 void wxPostScriptDC::SetPen( const wxPen& pen )
@@ -1172,139 +1137,6 @@ void wxPostScriptDC::SetBrush( const wxBrush& brush )
     }
 }
 
-#if wxUSE_PANGO
-
-#define PANGO_ENABLE_ENGINE
-
-#ifdef __WXGTK20__
-#include "wx/gtk/private.h"
-#include "gtk/gtk.h"
-#else
-#include "wx/x11/private.h"
-#endif
-
-#include <ft2build.h>
-#include FT_FREETYPE_H
-
-#include "wx/fontutil.h"
-#include <pango/pangoft2.h>
-#include <freetype/ftglyph.h>
-
-#ifndef FT_Outline_Decompose
-  FT_EXPORT( FT_Error )  FT_Outline_Decompose(
-                           FT_Outline*              outline,
-                           const FT_Outline_Funcs*  interface,
-                           void*                    user );
-#endif
-
-typedef struct _OutlineInfo OutlineInfo;
-struct _OutlineInfo {
-  wxPostScriptDC* caller;
-};
-
-static int paps_move_to( FT_Vector* to, void *user_data)
-{
-  OutlineInfo *outline_info = (OutlineInfo*)user_data;
-  outline_info->caller->PsPrintf( wxT("%d %d moveto\n"), (int)to->x, (int)to->y );
-  return 0;
-}
-
-static int paps_line_to( FT_Vector*  to, void *user_data)
-{
-  OutlineInfo *outline_info = (OutlineInfo*)user_data;
-  outline_info->caller->PsPrintf( wxT("%d %d lineto\n"), (int)to->x , (int)to->y );
-  return 0;
-}
-
-static int paps_conic_to( FT_Vector*  control, FT_Vector*  to, void *user_data)
-{
-  OutlineInfo *outline_info = (OutlineInfo*)user_data;
-  outline_info->caller->PsPrintf( wxT("%d %d %d %d conicto\n"),
-                                  (int)control->x ,
-                                  (int)control->y ,
-                                  (int)to->x ,
-                                  (int)to->y );
-  return 0;
-}
-
-static int
-paps_cubic_to( FT_Vector*  control1, FT_Vector*  control2,
-               FT_Vector*  to, void *user_data)
-{
-  OutlineInfo *outline_info = (OutlineInfo*)user_data;
-  outline_info->caller->PsPrintf(wxT("%d %d %d %d %d %d curveto\n"),
-          (int)control1->x ,
-          (int)control1->y ,
-          (int)control2->x ,
-          (int)control2->y ,
-          (int)to->x ,
-          (int)to->y );
-  return 0;
-}
-
-void draw_bezier_outline(wxPostScriptDC* caller,
-                         FT_Face face,
-                         FT_UInt glyph_index,
-                         int pos_x,
-                         int pos_y,
-                         double scale_x,
-                         double scale_y )
-{
-  FT_Int load_flags = FT_LOAD_NO_BITMAP;
-  FT_Glyph glyph;
-
-  FT_Outline_Funcs outlinefunc =
-  {
-    paps_move_to,
-    paps_line_to,
-    paps_conic_to,
-    paps_cubic_to
-  };
-
-  OutlineInfo outline_info;
-  outline_info.caller = caller;
-
-  caller->PsPrint("gsave\n");
-  caller->PsPrintf( wxT("%d %d translate\n"), pos_x, pos_y );
-
-  // We have to replace the "," from the German
-  // locale with the Englich "." for PostScript
-  char buf[100];
-  sprintf(buf, "%.8f %.8f scale\n", scale_x, scale_y );
-  for (size_t i = 0; i < strlen(buf); i++)
-     if (buf[i] == ',') buf[i] = '.';
-  caller->PsPrint(buf);
-
-  FT_Load_Glyph(face, glyph_index, load_flags);
-  FT_Get_Glyph (face->glyph, &glyph);
-  FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
-                        &outlinefunc, &outline_info);
-  caller->PsPrint("closepath fill grestore\n");
-
-  FT_Done_Glyph (glyph);
-}
-
-#endif
-
-
-#if wxUSE_PANGO
-static void InitializePangoContext(PangoContext *context)
-{
-#ifdef __WXGTK__
-    pango_context_set_base_dir(context,
-                               gtk_widget_get_default_direction() == GTK_TEXT_DIR_LTR ?
-                    PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL);
-    pango_context_set_language(context, gtk_get_default_language());
-#else
-    // FIXME: assuming LTR is incorrect!
-    pango_context_set_base_dir(context, PANGO_DIRECTION_LTR);
-    wxString lang = wxGetLocale()->GetCanonicalName();
-    pango_context_set_language(context,
-                               pango_language_from_string(lang.ToAscii()));
-#endif
-}
-#endif
-
 void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y )
 {
     wxCHECK_RET( m_ok, wxT("invalid postscript dc") );
@@ -1349,81 +1181,6 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y )
         }
     }
 
-#if wxUSE_PANGO
-    int ps_dpi = 72;
-    int pango_dpi = 600;
-    PangoContext *context = pango_ft2_get_context ( pango_dpi, pango_dpi );
-    
-    InitializePangoContext(context);
-
-    double scale = (double)pango_dpi / (double)ps_dpi;
-    scale /= m_userScaleY;
-
-    pango_context_set_font_description (context, m_font.GetNativeFontInfo()->description );
-
-    PangoLayout *layout = pango_layout_new (context);
-#if wxUSE_UNICODE
-    wxCharBuffer buffer = wxConvUTF8.cWC2MB( text );
-#else
-    wxCharBuffer buffer = wxConvUTF8.cWC2MB( wxConvLocal.cWX2WC( text ) );
-#endif
-    pango_layout_set_text( layout, (const char*) buffer, strlen(buffer) );
-
-    PsPrintf( wxT("%%%% %s\n"), text.c_str() );
-
-    PangoRectangle rect;
-    pango_layout_get_extents(layout, NULL, &rect);
-
-    int xx = LogicalToDeviceX( x );
-    int yy = LogicalToDeviceY( y );
-
-    int xxx = xx * PANGO_SCALE;
-    int yyy = yy * PANGO_SCALE - (int)(rect.height * 0.66 / scale);  // Move down by estimated baseline. HACK.
-
-#define ps_kludge_factor 2.8
-
-    // Loop over lines in layout
-    int num_lines = pango_layout_get_line_count( layout );
-    for (int i = 0; i < num_lines; i++)
-    {
-        PangoLayoutLine *line = pango_layout_get_line( layout, i );
-
-        // width of glyphs already printed
-        int all_width = 0;
-
-        // Loop over runs in line
-        GSList *runs_list = line->runs;
-        while (runs_list)
-        {
-            PangoLayoutRun *run = (PangoLayoutRun*) runs_list->data;
-            PangoItem *item = run->item;
-            PangoGlyphString *glyphs = run->glyphs;
-            PangoAnalysis *analysis = &item->analysis;
-            PangoFont *font = analysis->font;
-            FT_Face ft_face = pango_ft2_font_get_face(font);
-
-            int num_glyphs = glyphs->num_glyphs;
-            for (int glyph_idx = 0; glyph_idx < num_glyphs; glyph_idx++)
-            {
-                PangoGlyphGeometry geometry = glyphs->glyphs[glyph_idx].geometry;
-                int pos_x = xxx + (int)((double)(all_width+geometry.x_offset) / scale);
-                int pos_y = yyy + (int)((double)geometry.y_offset / scale );
-                all_width += geometry.width;
-
-                draw_bezier_outline( this, ft_face,
-                        (FT_UInt)(glyphs->glyphs[glyph_idx].glyph),
-                        pos_x / PANGO_SCALE,
-                        pos_y / PANGO_SCALE,
-                        1.0/(ps_kludge_factor * scale * 26.6),
-                        1.0/(ps_kludge_factor * scale * 26.6) );
-            }
-            runs_list = runs_list->next;
-        }
-    }
-
-    g_object_unref( G_OBJECT( layout ) );
-    g_object_unref( G_OBJECT( context ) );
-#else // !wxUSE_PANGO
     wxCoord text_w, text_h, text_descent;
 
     GetTextExtent(text, &text_w, &text_h, &text_descent);
@@ -1490,7 +1247,6 @@ void wxPostScriptDC::DoDrawText( const wxString& text, wxCoord x, wxCoord y )
 
     CalcBoundingBox( x, y );
     CalcBoundingBox( x + size * text.Length() * 2/3 , y );
-#endif // wxUSE_PANGO/!wxUSE_PANGO
 }
 
 void wxPostScriptDC::DoDrawRotatedText( const wxString& text, wxCoord x, wxCoord y, double angle )
@@ -1861,11 +1617,8 @@ bool wxPostScriptDC::StartDoc( const wxString& message )
     PsPrint( wxPostScriptHeaderEllipse );
     PsPrint( wxPostScriptHeaderEllipticArc );
     PsPrint( wxPostScriptHeaderColourImage );
-#if wxUSE_PANGO
-#else
     PsPrint( wxPostScriptHeaderReencodeISO1 );
     PsPrint( wxPostScriptHeaderReencodeISO2 );
-#endif
     if (wxPostScriptHeaderSpline)
         PsPrint( wxPostScriptHeaderSpline );
     PsPrint( "%%EndProlog\n" );
@@ -2089,44 +1842,6 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
         return;
     }
 
-#if wxUSE_PANGO
-    int wx_dpi = GetResolution();
-    int pango_dpi = 600;
-    PangoContext *context = pango_ft2_get_context ( pango_dpi, pango_dpi );
-
-    InitializePangoContext(context);
-
-    double scale = pango_dpi / wx_dpi;
-    scale /= m_userScaleY;
-
-    PangoLayout *layout = pango_layout_new (context);
-
-    PangoFontDescription *desc = fontToUse->GetNativeFontInfo()->description;
-    pango_layout_set_font_description(layout, desc);
-#if wxUSE_UNICODE
-    const wxCharBuffer data = wxConvUTF8.cWC2MB( string );
-#else
-    const wxWCharBuffer wdata = wxConvLocal.cMB2WC( string );
-    const wxCharBuffer data = wxConvUTF8.cWC2MB( wdata );
-#endif
-    pango_layout_set_text(layout, (const char*) data, strlen( (const char*) data ));
-
-    PangoRectangle rect;
-    pango_layout_get_extents(layout, NULL, &rect);
-
-    if (x) (*x) = (wxCoord) ( PANGO_PIXELS(rect.width) / scale );
-    if (y) (*y) = (wxCoord) ( PANGO_PIXELS(rect.height) / scale );
-    if (descent)
-    {
-        PangoLayoutIter *iter = pango_layout_get_iter(layout);
-        int baseline = pango_layout_iter_get_baseline(iter);
-        pango_layout_iter_free(iter);
-        *descent = wxCoord(*y - PANGO_PIXELS(baseline) / scale);
-    }
-    if (externalLeading) (*externalLeading) = 0;  // ??
-
-    g_object_unref( G_OBJECT( layout ) );
-#else
    // GTK 2.0
 
     const wxWX2MBbuf strbuf = string.mb_str();
@@ -2459,9 +2174,6 @@ void wxPostScriptDC::DoGetTextExtent(const wxString& string,
     if (externalLeading) *externalLeading = 0;
 #endif
     // Use AFM
-
-#endif
-    // GTK 2.0
 }
 
 // print postscript datas via required method (file, stream)
@@ -2523,52 +2235,6 @@ void wxPostScriptDC::PsPrint( int ch )
     }
 }
 
-#if WXWIN_COMPATIBILITY_2_2
-WXDLLEXPORT wxPrintSetupData *wxThePrintSetupData = 0;
-
-void wxInitializePrintSetupData(bool init)
-{
-    if (init)
-    {
-        // gets initialized in the constructor
-        wxThePrintSetupData = new wxPrintSetupData;
-    }
-    else
-    {
-        delete wxThePrintSetupData;
-
-        wxThePrintSetupData = (wxPrintSetupData *) NULL;
-    }
-}
-
-// A module to allow initialization/cleanup of PostScript-related
-// things without calling these functions from app.cpp.
-
-class WXDLLEXPORT wxPostScriptModule: public wxModule
-{
-DECLARE_DYNAMIC_CLASS(wxPostScriptModule)
-public:
-    wxPostScriptModule() {}
-    bool OnInit();
-    void OnExit();
-};
-
-IMPLEMENT_DYNAMIC_CLASS(wxPostScriptModule, wxModule)
-
-bool wxPostScriptModule::OnInit()
-{
-    wxInitializePrintSetupData();
-
-    return true;
-}
-
-void wxPostScriptModule::OnExit()
-{
-    wxInitializePrintSetupData(false);
-}
-#endif
-  // WXWIN_COMPATIBILITY_2_2
-
 #endif
   // wxUSE_POSTSCRIPT
 
index 26b6b9108d5291b29ea78cd3324d2b35e88b4309..feeea975c4d91eb0e483ecf8299ed1ef62dcbee8 100644 (file)
@@ -88,47 +88,6 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro
 
     printout->SetIsPreview(false);
 
-#if 0
-    // 4/9/99, JACS: this is a silly place to allow preparation, considering
-    // the DC and no parameters have been set in the printout object.
-    // Moved further down.
-
-    // printout->OnPreparePrinting();
-
-    // Get some parameters from the printout, if defined
-    int fromPage, toPage;
-    int minPage, maxPage;
-    printout->GetPageInfo(&minPage, &maxPage, &fromPage, &toPage);
-
-    if (maxPage == 0)
-    {
-        sm_lastError = wxPRINTER_ERROR;
-        return false;
-    }
-
-    m_printDialogData.SetMinPage(minPage);
-    m_printDialogData.SetMaxPage(maxPage);
-    if (fromPage != 0)
-        m_printDialogData.SetFromPage(fromPage);
-    if (toPage != 0)
-        m_printDialogData.SetToPage(toPage);
-
-    if (minPage != 0)
-    {
-        m_printDialogData.EnablePageNumbers(true);
-        if (m_printDialogData.GetFromPage() < m_printDialogData.GetMinPage())
-            m_printDialogData.SetFromPage(m_printDialogData.GetMinPage());
-        else if (m_printDialogData.GetFromPage() > m_printDialogData.GetMaxPage())
-            m_printDialogData.SetFromPage(m_printDialogData.GetMaxPage());
-        if (m_printDialogData.GetToPage() > m_printDialogData.GetMaxPage())
-            m_printDialogData.SetToPage(m_printDialogData.GetMaxPage());
-        else if (m_printDialogData.GetToPage() < m_printDialogData.GetMinPage())
-            m_printDialogData.SetToPage(m_printDialogData.GetMinPage());
-    }
-    else
-        m_printDialogData.EnablePageNumbers(false);
-#endif
-
     if (m_printDialogData.GetMinPage() < 1)
         m_printDialogData.SetMinPage(1);
     if (m_printDialogData.GetMaxPage() < 1)
@@ -193,7 +152,12 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro
     // set by the user
     m_printDialogData.SetMinPage(minPage);
     m_printDialogData.SetMaxPage(maxPage);
-
+    
+    if (m_printDialogData.GetFromPage() < minPage)
+        m_printDialogData.SetFromPage( minPage );
+    if (m_printDialogData.GetToPage() > maxPage)
+        m_printDialogData.SetToPage( maxPage );
+    
     int
        pagesPerCopy = m_printDialogData.GetToPage()-m_printDialogData.GetFromPage()+1,
        totalPages = pagesPerCopy * m_printDialogData.GetNoCopies(),
@@ -273,12 +237,13 @@ bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool pro
 wxDC* wxPostScriptPrinter::PrintDialog(wxWindow *parent)
 {
     wxDC* dc = (wxDC*) NULL;
-    wxGenericPrintDialog* dialog = new wxGenericPrintDialog(parent, & m_printDialogData);
-    int ret = dialog->ShowModal() ;
-    if (ret == wxID_OK)
+    
+    wxGenericPrintDialog dialog( parent, &m_printDialogData );
+    if (dialog.ShowModal() == wxID_OK)
     {
-        dc = dialog->GetPrintDC();
-        m_printDialogData = dialog->GetPrintDialogData();
+        dc = dialog.GetPrintDC();
+        m_printDialogData = dialog.GetPrintDialogData();
+        
         if (dc == NULL)
             sm_lastError = wxPRINTER_ERROR;
         else
@@ -287,8 +252,6 @@ wxDC* wxPostScriptPrinter::PrintDialog(wxWindow *parent)
     else
         sm_lastError = wxPRINTER_CANCELLED;
 
-    dialog->Destroy();
-
     return dc;
 }
 
index c6bda3b8d3ddcddfa614f05bd942f73320cdfb20..56c73814fa28cd69caa481051ff9b34d6e4f1e79 100644 (file)
@@ -301,7 +301,7 @@ void wxGenericPrintDialog::OnOK(wxCommandEvent& WXUNUSED(event))
     {
         m_printDialogData.GetPrintData().SetPrintMode(wxPRINT_MODE_PRINTER);
     }
-
+    
     EndModal(wxID_OK);
 }
 
@@ -397,10 +397,16 @@ bool wxGenericPrintDialog::TransferDataFromWindow()
         }
         if(m_rangeRadioBox)
         {
-           if (m_rangeRadioBox->GetSelection() == 0)
-              m_printDialogData.SetAllPages(true);
-           else
-              m_printDialogData.SetAllPages(false);
+            if (m_rangeRadioBox->GetSelection() == 0)
+            {
+                m_printDialogData.SetAllPages(true);
+                
+                // This means all pages, more or less
+                m_printDialogData.SetFromPage(1);
+                m_printDialogData.SetToPage(32000);
+            }
+            else
+                m_printDialogData.SetAllPages(false);
         }
     }
     else
@@ -418,11 +424,6 @@ bool wxGenericPrintDialog::TransferDataFromWindow()
     return true;
 }
 
-/*
-TODO: collate and noCopies should be duplicated across dialog data and print data objects
-(slightly different semantics on Windows but let's ignore this for a bit).
-*/
-
 wxDC *wxGenericPrintDialog::GetPrintDC()
 {
     return new wxPostScriptDC(GetPrintDialogData().GetPrintData());