1 /** <title>NSPrintInfo</title> 2 3 <abstract>Stores information used in printing.</abstract> 4 5 Copyright (C) 1996,1997,2004 Free Software Foundation, Inc. 6 7 Author: Simon Frankau <sgf@frankau.demon.co.uk> 8 Date: July 1997 9 Author: Adam Fedor <fedor@gnu.org> 10 Date: Oct 2001 11 Modified for Printing Backend Support 12 Author: Chad Hardin <cehardin@mac.com> 13 Date: June 2004 14 15 This file is part of the GNUstep GUI Library. 16 17 This library is free software; you can redistribute it and/or 18 modify it under the terms of the GNU Lesser General Public 19 License as published by the Free Software Foundation; either 20 version 2 of the License, or (at your option) any later version. 21 22 This library is distributed in the hope that it will be useful, 23 but WITHOUT ANY WARRANTY; without even the implied warranty of 24 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 25 Lesser General Public License for more details. 26 27 You should have received a copy of the GNU Lesser General Public 28 License along with this library; see the file COPYING.LIB. 29 If not, see <http://www.gnu.org/licenses/> or write to the 30 Free Software Foundation, 51 Franklin Street, Fifth Floor, 31 Boston, MA 02110-1301, USA. 32 */ 33 34 #ifndef _GNUstep_H_NSPrintInfo 35 #define _GNUstep_H_NSPrintInfo 36 37 #import <Foundation/NSObject.h> 38 #import <Foundation/NSGeometry.h> 39 #import <AppKit/AppKitDefines.h> 40 41 @class NSString; 42 @class NSDictionary; 43 @class NSMutableDictionary; 44 45 @class NSPrinter; 46 47 typedef enum _NSPrintingOrientation { 48 NSPortraitOrientation, 49 NSLandscapeOrientation 50 } NSPrintingOrientation; 51 52 typedef enum _NSPaperOrientation { 53 NSPaperOrientationPortrait, 54 NSPaperOrientationLandscape 55 } NSPaperOrientation; 56 57 typedef enum _NSPrintingPaginationMode { 58 NSAutoPagination, 59 NSFitPagination, 60 NSClipPagination 61 } NSPrintingPaginationMode; 62 63 @interface NSPrintInfo : NSObject <NSCoding, NSCopying> 64 { 65 NSMutableDictionary *_info; 66 } 67 68 69 // 70 // Creating and Initializing an NSPrintInfo Instance 71 // 72 - (id)initWithDictionary:(NSDictionary *)aDict; 73 74 // 75 // Managing the Shared NSPrintInfo Object 76 // 77 + (void)setSharedPrintInfo:(NSPrintInfo *)printInfo; 78 + (NSPrintInfo *)sharedPrintInfo; 79 80 // 81 // Managing the Printing Rectangle 82 // 83 + (NSSize)sizeForPaperName:(NSString *)name; 84 - (CGFloat)bottomMargin; 85 - (CGFloat)leftMargin; 86 - (NSPrintingOrientation)orientation; 87 - (NSString *)paperName; 88 - (NSSize)paperSize; 89 - (CGFloat)rightMargin; 90 - (void)setBottomMargin:(CGFloat)value; 91 - (void)setLeftMargin:(CGFloat)value; 92 - (void)setOrientation:(NSPrintingOrientation)mode; 93 - (void)setPaperName:(NSString *)name; 94 - (void)setPaperSize:(NSSize)size; 95 - (void)setRightMargin:(CGFloat)value; 96 - (void)setTopMargin:(CGFloat)value; 97 - (CGFloat)topMargin; 98 #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST) 99 - (NSRect)imageablePageBounds; 100 #endif 101 #if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST) 102 - (NSString *)localizedPaperName; 103 #endif 104 105 // 106 // Pagination 107 // 108 - (NSPrintingPaginationMode)horizontalPagination; 109 - (void)setHorizontalPagination:(NSPrintingPaginationMode)mode; 110 - (void)setVerticalPagination:(NSPrintingPaginationMode)mode; 111 - (NSPrintingPaginationMode)verticalPagination; 112 113 // 114 // Positioning the Image on the Page 115 // 116 - (BOOL)isHorizontallyCentered; 117 - (BOOL)isVerticallyCentered; 118 - (void)setHorizontallyCentered:(BOOL)flag; 119 - (void)setVerticallyCentered:(BOOL)flag; 120 121 // 122 // Specifying the Printer 123 // 124 + (NSPrinter *)defaultPrinter; 125 + (void)setDefaultPrinter:(NSPrinter *)printer; 126 - (NSPrinter *)printer; 127 - (void)setPrinter:(NSPrinter *)aPrinter; 128 129 // 130 // Controlling Printing 131 // 132 - (NSString *)jobDisposition; 133 - (void)setJobDisposition:(NSString *)disposition; 134 - (void)setUpPrintOperationDefaultValues; 135 136 // 137 // Accessing the NSPrintInfo Object's Dictionary 138 // 139 - (NSMutableDictionary *)dictionary; 140 141 @end 142 143 144 // 145 // Printing Information Dictionary Keys 146 // 147 APPKIT_EXPORT NSString *NSPrintAllPages; 148 APPKIT_EXPORT NSString *NSPrintBottomMargin; 149 APPKIT_EXPORT NSString *NSPrintCopies; 150 APPKIT_EXPORT NSString *NSPrintFaxCoverSheetName; 151 APPKIT_EXPORT NSString *NSPrintFaxHighResolution; 152 APPKIT_EXPORT NSString *NSPrintFaxModem; 153 APPKIT_EXPORT NSString *NSPrintFaxReceiverNames; 154 APPKIT_EXPORT NSString *NSPrintFaxReceiverNumbers; 155 APPKIT_EXPORT NSString *NSPrintFaxReturnReceipt; 156 APPKIT_EXPORT NSString *NSPrintFaxSendTime; 157 APPKIT_EXPORT NSString *NSPrintFaxTrimPageEnds; 158 APPKIT_EXPORT NSString *NSPrintFaxUseCoverSheet; 159 APPKIT_EXPORT NSString *NSPrintFirstPage; 160 APPKIT_EXPORT NSString *NSPrintHorizontalPagination; 161 APPKIT_EXPORT NSString *NSPrintHorizontallyCentered; 162 APPKIT_EXPORT NSString *NSPrintJobDisposition; 163 APPKIT_EXPORT NSString *NSPrintJobFeatures; 164 APPKIT_EXPORT NSString *NSPrintLastPage; 165 APPKIT_EXPORT NSString *NSPrintLeftMargin; 166 APPKIT_EXPORT NSString *NSPrintManualFeed; 167 APPKIT_EXPORT NSString *NSPrintMustCollate; 168 APPKIT_EXPORT NSString *NSPrintOrientation; 169 APPKIT_EXPORT NSString *NSPrintPackageException; 170 APPKIT_EXPORT NSString *NSPrintPagesPerSheet; 171 APPKIT_EXPORT NSString *NSPrintPaperFeed; 172 APPKIT_EXPORT NSString *NSPrintPaperName; 173 APPKIT_EXPORT NSString *NSPrintPaperSize; 174 APPKIT_EXPORT NSString *NSPrintPrinter; 175 APPKIT_EXPORT NSString *NSPrintReversePageOrder; 176 APPKIT_EXPORT NSString *NSPrintRightMargin; 177 APPKIT_EXPORT NSString *NSPrintSavePath; 178 APPKIT_EXPORT NSString *NSPrintScalingFactor; 179 APPKIT_EXPORT NSString *NSPrintTopMargin; 180 APPKIT_EXPORT NSString *NSPrintVerticalPagination; 181 APPKIT_EXPORT NSString *NSPrintVerticallyCentered; 182 183 #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST) 184 APPKIT_EXPORT NSString *NSPrintPagesAcross; 185 APPKIT_EXPORT NSString *NSPrintPagesDown; 186 APPKIT_EXPORT NSString *NSPrintTime; 187 APPKIT_EXPORT NSString *NSPrintDetailedErrorReporting; 188 APPKIT_EXPORT NSString *NSPrintFaxNumber; 189 APPKIT_EXPORT NSString *NSPrintPrinterName; 190 APPKIT_EXPORT NSString *NSPrintHeaderAndFooter; 191 #endif 192 193 // 194 // Additional (GNUstep) keys 195 // 196 /** Set to <code>Rows</code> to print row by row, set to <code>Columns</code> 197 to print column by column */ 198 APPKIT_EXPORT NSString *NSPrintPageDirection; 199 200 // 201 // Print Job Disposition Values 202 // 203 APPKIT_EXPORT NSString *NSPrintCancelJob; 204 APPKIT_EXPORT NSString *NSPrintFaxJob; 205 APPKIT_EXPORT NSString *NSPrintPreviewJob; 206 APPKIT_EXPORT NSString *NSPrintSaveJob; 207 APPKIT_EXPORT NSString *NSPrintSpoolJob; 208 209 #endif // _GNUstep_H_NSPrintInfo 210