1 /******************************************************************************** 2 * * 3 * P r i n t J o b D i a l o g * 4 * * 5 ********************************************************************************* 6 * Copyright (C) 1999,2005 by Jeroen van der Zijp. All Rights Reserved. * 7 ********************************************************************************* 8 * This library is free software; you can redistribute it and/or * 9 * modify it under the terms of the GNU Lesser General Public * 10 * License as published by the Free Software Foundation; either * 11 * version 2.1 of the License, or (at your option) any later version. * 12 * * 13 * This library is distributed in the hope that it will be useful, * 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 16 * Lesser General Public License for more details. * 17 * * 18 * You should have received a copy of the GNU Lesser General Public * 19 * License along with this library; if not, write to the Free Software * 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * 21 ********************************************************************************* 22 * $Id: FXPrintDialog.h,v 1.16 2005/01/16 16:06:06 fox Exp $ * 23 ********************************************************************************/ 24 #ifndef FXPRINTDIALOG_H 25 #define FXPRINTDIALOG_H 26 27 #ifndef FXDIALOGBOX_H 28 #include "FXDialogBox.h" 29 #endif 30 31 namespace FX { 32 33 34 class FXRadioButton; 35 class FXComboBox; 36 class FXListBox; 37 class FXTextField; 38 class FXSpinner; 39 class FXIcon; 40 41 42 /// Printer selection dialog 43 class FXAPI FXPrintDialog : public FXDialogBox { 44 FXDECLARE(FXPrintDialog) 45 protected: 46 FXRadioButton *sendtoprinter; 47 FXComboBox *printername; 48 FXRadioButton *sendtofile; 49 FXTextField *filename; 50 FXRadioButton *printall; 51 FXRadioButton *printeven; 52 FXRadioButton *printodd; 53 FXRadioButton *printrange; 54 FXRadioButton *firstpagefirst; 55 FXRadioButton *lastpagefirst; 56 FXRadioButton *printincolor; 57 FXRadioButton *printinblacknwhite; 58 FXRadioButton *orientportrait; 59 FXRadioButton *orientlanscape; 60 FXListBox *media; 61 FXSpinner *firstpage; 62 FXSpinner *lastpage; 63 FXSpinner *numberofcopies; 64 FXIcon *landscapeIcon; 65 FXIcon *portraitIcon; 66 FXPrinter printer; 67 protected: FXPrintDialog()68 FXPrintDialog(){} 69 private: 70 FXPrintDialog(const FXPrintDialog&); 71 FXPrintDialog &operator=(const FXPrintDialog&); 72 public: 73 long onCmdToPrinter(FXObject*,FXSelector,void*); 74 long onUpdToPrinter(FXObject*,FXSelector,void*); 75 long onCmdToFile(FXObject*,FXSelector,void*); 76 long onUpdToFile(FXObject*,FXSelector,void*); 77 long onCmdBrowse(FXObject*,FXSelector,void*); 78 long onUpdBrowse(FXObject*,FXSelector,void*); 79 long onCmdProps(FXObject*,FXSelector,void*); 80 long onUpdProps(FXObject*,FXSelector,void*); 81 long onCmdPortrait(FXObject*,FXSelector,void*); 82 long onUpdPortrait(FXObject*,FXSelector,void*); 83 long onCmdLandscape(FXObject*,FXSelector,void*); 84 long onUpdLandscape(FXObject*,FXSelector,void*); 85 long onCmdPages(FXObject*,FXSelector,void*); 86 long onUpdPages(FXObject*,FXSelector,void*); 87 long onCmdColor(FXObject*,FXSelector,void*); 88 long onUpdColor(FXObject*,FXSelector,void*); 89 long onCmdGray(FXObject*,FXSelector,void*); 90 long onUpdGray(FXObject*,FXSelector,void*); 91 long onCmdNumCopies(FXObject*,FXSelector,void*); 92 long onUpdNumCopies(FXObject*,FXSelector,void*); 93 long onCmdFirstPage(FXObject*,FXSelector,void*); 94 long onUpdFirstPage(FXObject*,FXSelector,void*); 95 long onCmdLastPage(FXObject*,FXSelector,void*); 96 long onUpdLastPage(FXObject*,FXSelector,void*); 97 long onCmdCollateNormal(FXObject*,FXSelector,void*); 98 long onUpdCollateNormal(FXObject*,FXSelector,void*); 99 long onCmdCollateReversed(FXObject*,FXSelector,void*); 100 long onUpdCollateReversed(FXObject*,FXSelector,void*); 101 long onCmdFileName(FXObject*,FXSelector,void*); 102 long onUpdFileName(FXObject*,FXSelector,void*); 103 long onCmdPrinterName(FXObject*,FXSelector,void*); 104 long onUpdPrinterName(FXObject*,FXSelector,void*); 105 long onCmdAccept(FXObject*,FXSelector,void*); 106 long onCmdMedia(FXObject*,FXSelector,void*); 107 long onUpdMedia(FXObject*,FXSelector,void*); 108 public: 109 enum{ 110 ID_TO_PRINTER=FXDialogBox::ID_LAST, 111 ID_TO_FILE, 112 ID_PRINTER_NAME, 113 ID_FILE_NAME, 114 ID_LANDSCAPE, 115 ID_PORTRAIT, 116 ID_MEDIA, 117 ID_COLLATE_NORMAL, 118 ID_COLLATE_REVERSED, 119 ID_PAGES_ALL, 120 ID_PAGES_EVEN, 121 ID_PAGES_ODD, 122 ID_PAGES_RANGE, 123 ID_PAGES_FIRST, 124 ID_PAGES_LAST, 125 ID_BROWSE_FILE, 126 ID_PROPERTIES, 127 ID_COLOR_PRINTER, 128 ID_GRAY_PRINTER, 129 ID_NUM_COPIES 130 }; 131 public: 132 133 /// Construct print dialog 134 FXPrintDialog(FXWindow* owner,const FXString& name,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0); 135 136 /// Create dialog 137 virtual void create(); 138 139 /// Set printer info 140 void setPrinter(const FXPrinter& pr); 141 142 /// Get printer info 143 void getPrinter(FXPrinter& pr); 144 145 /// Save dialog to a stream 146 virtual void save(FXStream& store) const; 147 148 /// Load dialog from a stream 149 virtual void load(FXStream& store); 150 151 /// Destructor 152 virtual ~FXPrintDialog(); 153 }; 154 155 } 156 157 #endif 158