forked from cellularmitosis/ADC-reference-library-2009-july
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlisting11.html
executable file
·229 lines (202 loc) · 9.46 KB
/
listing11.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<!-- BEGIN META TAG INFO -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="home" href="http://developer.apple.com/">
<link rel="find" href="http://developer.apple.com/search/">
<link rel="stylesheet" type="text/css" href="../../documentation/css/adcstyle.css" title="fonts">
<script language="JavaScript" src="../../documentation/js/adc.js" type="text/javascript"></script>
<!-- END META TAG INFO -->
<!-- BEGIN TITLE -->
<title>Cocoa PDE with Carbon Printing - /Readme.txt</title>
<!-- END TITLE -->
<script language="JavaScript">
function JumpToNewPage() {
window.location=document.scpopupmenu.gotop.value;
return true;
}
</script>
</head>
<!-- BEGIN BODY OPEN -->
<body>
<!--END BODY OPEN -->
<!-- START CENTER OPEN -->
<center>
<!-- END CENTER OPEN -->
<!-- BEGIN LOGO AND SEARCH -->
<!--#include virtual="/includes/adcnavbar"-->
<!-- END LOGO AND SEARCH -->
<!-- START BREADCRUMB -->
<div id="breadcrumb">
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td scope="row"><img width="340" height="10" src="images/1dot.gif" alt=""></td>
<td><img width="340" height="10" src="images/1dot.gif" alt=""></td>
</tr>
<tr valign="middle">
<td align="left" colspan="2">
<a href="http://developer.apple.com/">ADC Home</a> > <a href="../../referencelibrary/index.html">Reference Library</a> > <a href="../../samplecode/index.html">Sample Code</a> > <a href="../../samplecode/Carbon/index.html">Carbon</a> > <a href="../../samplecode/Carbon/idxPrinting-date.html">Printing</a> > <A HREF="javascript:location.replace('index.html');">Cocoa PDE with Carbon Printing</A> >
</td>
</tr>
<tr>
<td colspan="2" scope="row"><img width="680" height="35" src="images/1dot.gif" alt=""></td>
</tr>
</table>
</div>
<!-- END BREADCRUMB -->
<!-- START MAIN CONTENT -->
<!-- START TITLE GRAPHIC AND INTRO-->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td><h1><div id="pagehead">Cocoa PDE with Carbon Printing</div></h1></td>
</tr>
</table>
<!-- END TITLE GRAPHIC AND INTRO -->
<!-- START WIDE COLUMN -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td id="scdetails">
<h2>/Readme.txt</h2>
<form name="scpopupmenu" onSubmit="return false;" method=post>
<p><strong>View Source Code:</strong>
<select name="gotop" onChange="JumpToNewPage();" style="width:340px"><option selected value="ingnore">Select File</option>
<option value="listing1.html">/AESupport.r</option>
<option value="listing2.html">/AppCustomPDE/AppCustomPDE.h</option>
<option value="listing3.html">/AppCustomPDE/AppCustomPDE.m</option>
<option value="listing4.html">/AppDrawing.c</option>
<option value="listing5.html">/AppDrawing.h</option>
<option value="listing6.html">/MyCarbonPrinting.c</option>
<option value="listing7.html">/MyCarbonPrinting.h</option>
<option value="listing8.html">/NavServicesHandling.c</option>
<option value="listing9.html">/NavServicesHandling.h</option>
<option value="listing10.html">/PDECommon.h</option>
<option value="listing11.html">/Readme.txt</option>
<option value="listing12.html">/UIHandling.c</option>
<option value="listing13.html">/UIHandling.h</option></select>
</p>
</form>
<p><strong><a href="CarbonPrintingSample.zip">Download Sample</a></strong> (“CarbonPrintingSample.zip”, 83.9K)<BR>
<strong><a href="CarbonPrintingSample.dmg">Download Sample</a></strong> (“CarbonPrintingSample.dmg”, 126.3K)</p>
<!--
<p><strong><a href="#">Download Sample</a></strong> (“filename.sit”, 500K)</p>
-->
</td>
</tr>
<tr>
<td scope="row"><img width="680" height="10" src="images/1dot.gif" alt=""><br>
<img height="1" width="680" src="images/1dot_919699.gif" alt=""><br>
<img width="680" height="20" src="images/1dot.gif" alt=""></td>
</tr>
<tr>
<td scope="row">
<!--googleon: index -->
<pre class="sourcecodebox">CarbonPrintingSample demonstrates how to print from a Carbon application, and
how to add a Cocoa PDE to the print dialog box. It comes as a single Xcode
project (CarbonPrintingSample.xcodeproj) with two targets (CarbonPrintingSample
and AppCustomPDE).
This sample requires Mac OS X 10.4 or later. It was compiled using Xcode 2.4.1.
CarbonPrintingSample:
This target contains the printing application. When started it presents our
"document" window, which has a single view with the text for the first page.
When printed, it will print 5 pages, optionally with a title (this can be set
via the Print Titles PDE that is also included in the project).
AppDrawing.c/h
Support routines to handle all the drawing, as well as routines to retain
information required to properly print the "document". These functions
manipulate an opaque DrawDataRef data type that tracks the print settings, page
format, number of pages and are able to draw each of the pages in the document.
MyCarbonPrinting.c/h
Handles all printing tasks, from showing the dialog to sending the document to
print. Examples of how to handle both the sheet & no-sheets cases, as well as
how to get settings from your PDE.
NavServicesHandling.c/h
Routines to work with save dialogs.
UIHandling.c/h
Handling for all non-printing UI in the application, as well as the location of
main().
PDECommon.h
Contains the declarations common to the application and the PDE for
communication via the print settings. Currently this is only the
kMyApplicationPrintSettingsKey and the default value of kPrintTitlesOnlyDefault.
AppCustomPDE:
This target contains the Cocoa PDE that is displayed in the print dialog box,
titled "Print Titles". Unlike with a Carbon PDE, you specify a Cocoa PDE in your
application's Info.plist. You can have multiple PDEs if you like. They are
listed in an array with the key PrintDialogExtensions, with the full name of the
bundle as a string per entry. Below is the entry from the CarbonPrintingSample's
Info.plist. PrintDialogExtensions are stored in the PlugIns folder of your
application bundle.
<key>PrintDialogExtensions</key>
<array>
<string>AppCustomPDE.bundle</string>
</array>
AppCustomPDE.h/m
Implements the Cocoa PDE for this application. Highlights include:
AppCustomPDEPlugIn - creates the AppCustomPDE that actually implements the
Print Panel
-(BOOL)initWithBundle:(NSBundle*)
the designated initializer for the AppCustomPDEPlugIn class and the main entry
point for the bundle
-(NSArray*)PDEPanelsForType:(NSString*)pdeType withHostInfo:(id)host
this is where you create your print panel(s). The pdeType for an application
print panel will be kAppPrintDialogTypeIDStr, and the host is an object that you
can query for information about the current print state.
AppCustomPDE (and the category private_routines)
- (id)initWithCallback:(PDEPluginCallback*)callback
the designated initializer for the AppCustomPDE. You can use the callback
object to query information about the current print state.
-(NSView*)panelView
returns an NSView hierarchy that represents your print panel contents.
-(NSString*)panelName
returns the name of the print panel (that will show up in the Print
Dialog/Sheet). As a user facing value, it should be localized.
-(void)willShow
notification that your panel is about to be shown.
-(BOOL)shouldHide
a request to switch panels, return YES to allow, NO to disallow. If you need
to do any data verification, this is the best place to implement it.
-(BOOL)restoreValuesAndReturnError:(NSError **)error
-(BOOL)saveValuesAndReturnError:(NSError **)error
Restore/Save values. On restore you should read values from the print settings
and configure your UI. On save you should obtain values from your UI and save
them in the print settings.
-(NSDictionary *)summaryInfo
Provide summary information for this print panel. The strings that you put in
this dictionary are user facing, so they should be localized.</pre>
<!--googleoff: index -->
</td>
</tr>
</table>
<!-- END WIDE COLUMN -->
<!-- END MAIN CONTENT -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><div style="width: 100%; height: 1px; background-color: #919699; margin-top: 5px; margin-bottom: 15px"></div></td>
</tr>
<tr>
<td align="center"><br/>
<table border="0" cellpadding="0" cellspacing="0" class="graybox">
<tr>
<th>Did this document help you?</th>
</tr>
<tr>
<td>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=1&url=/samplecode/CarbonPrintingSample/listing11.html%3Fid%3DDTS10004209-1.0&media=dvd" target=_new>Yes</a>: Tell us what works for you.</div>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=2&url=/samplecode/CarbonPrintingSample/listing11.html%3Fid%3DDTS10004209-1.0&media=dvd" target=_new>It’s good, but:</a> Report typos, inaccuracies, and so forth.</div>
<div><a href="http://developer.apple.com/feedback/?v=3&url=/samplecode/CarbonPrintingSample/listing11.html%3Fid%3DDTS10004209-1.0&media=dvd" target=_new>It wasn’t helpful</a>: Tell us what would have helped.</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- START BOTTOM APPLE NAVIGATION -->
<!--#include virtual="/includes/footer"-->
<!-- END BOTTOM APPLE NAVIGATION -->
<!-- START CENTER CLOSE -->
</center>
<!-- END CENTER CLOSE -->
</body>
</html>