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