00001 /* AbiSource Application Framework 00002 * Copyright (C) 1998 AbiSource, Inc. 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 00017 * 02110-1301 USA. 00018 */ 00019 00020 #ifndef XAP_UNIXDIALOG_PRINT_H 00021 #define XAP_UNIXDIALOG_PRINT_H 00022 00023 #include "xap_Dlg_Print.h" 00024 #include <gtk/gtk.h> 00025 00026 class FV_View; 00027 class FL_DocLayout; 00028 class XAP_Frane; 00029 00030 /*****************************************************************/ 00031 00032 class XAP_UnixDialog_Print : public XAP_Dialog_Print 00033 { 00034 public: 00035 XAP_UnixDialog_Print(XAP_DialogFactory * pDlgFactory, 00036 XAP_Dialog_Id id); 00037 virtual ~XAP_UnixDialog_Print(void); 00038 00039 static XAP_Dialog * static_constructor(XAP_DialogFactory *, XAP_Dialog_Id id); 00040 00041 virtual void runModal(XAP_Frame * pFrame); 00042 00043 virtual GR_Graphics * getPrinterGraphicsContext(void); 00044 virtual void releasePrinterGraphicsContext(GR_Graphics *); 00045 void setupPrint(void); 00046 void BeginPrint(GtkPrintContext * context); 00047 void PrintPage(gint iPage); 00048 virtual void setPreview(bool b); 00049 virtual void PrintDirectly(XAP_Frame * pFrame, const char * szFilename, const char * szPrinter); 00050 void cleanup(void); 00051 protected: 00052 GR_Graphics * m_pPrintGraphics; 00053 GR_Graphics::ColorSpace colorSpace; 00054 bool m_bIsPreview; 00055 GtkPageSetup * m_pPageSetup; 00056 GtkPaperSize * m_pGtkPageSize; 00057 GtkPrintOperation * m_pPO; 00058 FV_View * m_pView; 00059 gint m_iNumberPages; 00060 gint m_iCurrentPage; 00061 FL_DocLayout * m_pDL; 00062 FV_View * m_pPrintView; 00063 FL_DocLayout * m_pPrintLayout; 00064 bool m_bDidQuickPrint; 00065 bool m_bShowParagraphs; 00066 XAP_Frame * m_pFrame; 00067 }; 00068 00069 #endif /* XAP_UNIXDIALOG_PRINT_H */