OSDN Git Service

Please enter the commit message for your changes. Lines starting
[eos/hostdependX86LINUX64.git] / util / X86LINUX64 / man / man3 / Tk_RedrawImage.3
1 '\"
2 '\" Copyright (c) 1994 The Regents of the University of California.
3 '\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
4 '\"
5 '\" See the file "license.terms" for information on usage and redistribution
6 '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7 '\" 
8 .TH Tk_GetImage 3 4.0 Tk "Tk Library Procedures"
9 .\" The -*- nroff -*- definitions below are for supplemental macros used
10 .\" in Tcl/Tk manual entries.
11 .\"
12 .\" .AP type name in/out ?indent?
13 .\"     Start paragraph describing an argument to a library procedure.
14 .\"     type is type of argument (int, etc.), in/out is either "in", "out",
15 .\"     or "in/out" to describe whether procedure reads or modifies arg,
16 .\"     and indent is equivalent to second arg of .IP (shouldn't ever be
17 .\"     needed;  use .AS below instead)
18 .\"
19 .\" .AS ?type? ?name?
20 .\"     Give maximum sizes of arguments for setting tab stops.  Type and
21 .\"     name are examples of largest possible arguments that will be passed
22 .\"     to .AP later.  If args are omitted, default tab stops are used.
23 .\"
24 .\" .BS
25 .\"     Start box enclosure.  From here until next .BE, everything will be
26 .\"     enclosed in one large box.
27 .\"
28 .\" .BE
29 .\"     End of box enclosure.
30 .\"
31 .\" .CS
32 .\"     Begin code excerpt.
33 .\"
34 .\" .CE
35 .\"     End code excerpt.
36 .\"
37 .\" .VS ?version? ?br?
38 .\"     Begin vertical sidebar, for use in marking newly-changed parts
39 .\"     of man pages.  The first argument is ignored and used for recording
40 .\"     the version when the .VS was added, so that the sidebars can be
41 .\"     found and removed when they reach a certain age.  If another argument
42 .\"     is present, then a line break is forced before starting the sidebar.
43 .\"
44 .\" .VE
45 .\"     End of vertical sidebar.
46 .\"
47 .\" .DS
48 .\"     Begin an indented unfilled display.
49 .\"
50 .\" .DE
51 .\"     End of indented unfilled display.
52 .\"
53 .\" .SO ?manpage?
54 .\"     Start of list of standard options for a Tk widget. The manpage
55 .\"     argument defines where to look up the standard options; if
56 .\"     omitted, defaults to "options". The options follow on successive
57 .\"     lines, in three columns separated by tabs.
58 .\"
59 .\" .SE
60 .\"     End of list of standard options for a Tk widget.
61 .\"
62 .\" .OP cmdName dbName dbClass
63 .\"     Start of description of a specific option.  cmdName gives the
64 .\"     option's name as specified in the class command, dbName gives
65 .\"     the option's name in the option database, and dbClass gives
66 .\"     the option's class in the option database.
67 .\"
68 .\" .UL arg1 arg2
69 .\"     Print arg1 underlined, then print arg2 normally.
70 .\"
71 .\" .QW arg1 ?arg2?
72 .\"     Print arg1 in quotes, then arg2 normally (for trailing punctuation).
73 .\"
74 .\" .PQ arg1 ?arg2?
75 .\"     Print an open parenthesis, arg1 in quotes, then arg2 normally
76 .\"     (for trailing punctuation) and then a closing parenthesis.
77 .\"
78 .\"     # Set up traps and other miscellaneous stuff for Tcl/Tk man pages.
79 .if t .wh -1.3i ^B
80 .nr ^l \n(.l
81 .ad b
82 .\"     # Start an argument description
83 .de AP
84 .ie !"\\$4"" .TP \\$4
85 .el \{\
86 .   ie !"\\$2"" .TP \\n()Cu
87 .   el          .TP 15
88 .\}
89 .ta \\n()Au \\n()Bu
90 .ie !"\\$3"" \{\
91 \&\\$1 \\fI\\$2\\fP (\\$3)
92 .\".b
93 .\}
94 .el \{\
95 .br
96 .ie !"\\$2"" \{\
97 \&\\$1  \\fI\\$2\\fP
98 .\}
99 .el \{\
100 \&\\fI\\$1\\fP
101 .\}
102 .\}
103 ..
104 .\"     # define tabbing values for .AP
105 .de AS
106 .nr )A 10n
107 .if !"\\$1"" .nr )A \\w'\\$1'u+3n
108 .nr )B \\n()Au+15n
109 .\"
110 .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
111 .nr )C \\n()Bu+\\w'(in/out)'u+2n
112 ..
113 .AS Tcl_Interp Tcl_CreateInterp in/out
114 .\"     # BS - start boxed text
115 .\"     # ^y = starting y location
116 .\"     # ^b = 1
117 .de BS
118 .br
119 .mk ^y
120 .nr ^b 1u
121 .if n .nf
122 .if n .ti 0
123 .if n \l'\\n(.lu\(ul'
124 .if n .fi
125 ..
126 .\"     # BE - end boxed text (draw box now)
127 .de BE
128 .nf
129 .ti 0
130 .mk ^t
131 .ie n \l'\\n(^lu\(ul'
132 .el \{\
133 .\"     Draw four-sided box normally, but don't draw top of
134 .\"     box if the box started on an earlier page.
135 .ie !\\n(^b-1 \{\
136 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
137 .\}
138 .el \}\
139 \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul'
140 .\}
141 .\}
142 .fi
143 .br
144 .nr ^b 0
145 ..
146 .\"     # VS - start vertical sidebar
147 .\"     # ^Y = starting y location
148 .\"     # ^v = 1 (for troff;  for nroff this doesn't matter)
149 .de VS
150 .if !"\\$2"" .br
151 .mk ^Y
152 .ie n 'mc \s12\(br\s0
153 .el .nr ^v 1u
154 ..
155 .\"     # VE - end of vertical sidebar
156 .de VE
157 .ie n 'mc
158 .el \{\
159 .ev 2
160 .nf
161 .ti 0
162 .mk ^t
163 \h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n'
164 .sp -1
165 .fi
166 .ev
167 .\}
168 .nr ^v 0
169 ..
170 .\"     # Special macro to handle page bottom:  finish off current
171 .\"     # box/sidebar if in box/sidebar mode, then invoked standard
172 .\"     # page bottom macro.
173 .de ^B
174 .ev 2
175 'ti 0
176 'nf
177 .mk ^t
178 .if \\n(^b \{\
179 .\"     Draw three-sided box if this is the box's first page,
180 .\"     draw two sides but no top otherwise.
181 .ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
182 .el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c
183 .\}
184 .if \\n(^v \{\
185 .nr ^x \\n(^tu+1v-\\n(^Yu
186 \kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c
187 .\}
188 .bp
189 'fi
190 .ev
191 .if \\n(^b \{\
192 .mk ^y
193 .nr ^b 2
194 .\}
195 .if \\n(^v \{\
196 .mk ^Y
197 .\}
198 ..
199 .\"     # DS - begin display
200 .de DS
201 .RS
202 .nf
203 .sp
204 ..
205 .\"     # DE - end display
206 .de DE
207 .fi
208 .RE
209 .sp
210 ..
211 .\"     # SO - start of list of standard options
212 .de SO
213 'ie '\\$1'' .ds So \\fBoptions\\fR
214 'el .ds So \\fB\\$1\\fR
215 .SH "STANDARD OPTIONS"
216 .LP
217 .nf
218 .ta 5.5c 11c
219 .ft B
220 ..
221 .\"     # SE - end of list of standard options
222 .de SE
223 .fi
224 .ft R
225 .LP
226 See the \\*(So manual entry for details on the standard options.
227 ..
228 .\"     # OP - start of full description for a single option
229 .de OP
230 .LP
231 .nf
232 .ta 4c
233 Command-Line Name:      \\fB\\$1\\fR
234 Database Name:  \\fB\\$2\\fR
235 Database Class: \\fB\\$3\\fR
236 .fi
237 .IP
238 ..
239 .\"     # CS - begin code excerpt
240 .de CS
241 .RS
242 .nf
243 .ta .25i .5i .75i 1i
244 ..
245 .\"     # CE - end code excerpt
246 .de CE
247 .fi
248 .RE
249 ..
250 .\"     # UL - underline word
251 .de UL
252 \\$1\l'|0\(ul'\\$2
253 ..
254 .\"     # QW - apply quotation marks to word
255 .de QW
256 .ie '\\*(lq'"' ``\\$1''\\$2
257 .\"" fix emacs highlighting
258 .el \\*(lq\\$1\\*(rq\\$2
259 ..
260 .\"     # PQ - apply parens and quotation marks to word
261 .de PQ
262 .ie '\\*(lq'"' (``\\$1''\\$2)\\$3
263 .\"" fix emacs highlighting
264 .el (\\*(lq\\$1\\*(rq\\$2)\\$3
265 ..
266 .\"     # QR - quoted range
267 .de QR
268 .ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3
269 .\"" fix emacs highlighting
270 .el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3
271 ..
272 .\"     # MT - "empty" string
273 .de MT
274 .QW ""
275 ..
276 .BS
277 .SH NAME
278 Tk_GetImage, Tk_RedrawImage, Tk_SizeOfImage, Tk_FreeImage \- use an image in a widget
279 .SH SYNOPSIS
280 .nf
281 \fB#include <tk.h>\fR
282 .sp
283 Tk_Image
284 \fBTk_GetImage\fR(\fIinterp, tkwin, name, changeProc, clientData\fR)
285 .sp
286 \fBTk_RedrawImage\fR(\fIimage, imageX, imageY, width, height, drawable, drawableX, drawableY\fR)
287 .sp
288 \fBTk_SizeOfImage\fR(\fIimage, widthPtr, heightPtr\fR)
289 .sp
290 \fBTk_FreeImage\fR(\fIimage\fR)
291 .SH ARGUMENTS
292 .AS Tk_ImageChangedProc *changeProc
293 .AP Tcl_Interp *interp in
294 Place to leave error message.
295 .AP Tk_Window tkwin in
296 Window in which image will be used.
297 .AP "const char" *name in
298 Name of image.
299 .AP Tk_ImageChangedProc *changeProc in
300 Procedure for Tk to invoke whenever image content or size changes.
301 .AP ClientData clientData in
302 One-word value for Tk to pass to \fIchangeProc\fR.
303 .AP Tk_Image image in
304 Token for image instance;  must have been returned by a previous
305 call to \fBTk_GetImage\fR.
306 .AP int imageX in
307 X-coordinate of upper-left corner of region of image to redisplay
308 (measured in pixels from the image's upper-left corner).
309 .AP int imageY in
310 Y-coordinate of upper-left corner of region of image to redisplay
311 (measured in pixels from the image's upper-left corner).
312 .AP "int" width (in)
313 Width of region of image to redisplay.
314 .AP "int" height (in)
315 Height of region of image to redisplay.
316 .AP Drawable drawable in
317 Where to display image.  Must either be window specified to
318 \fBTk_GetImage\fR or a pixmap compatible with that window.
319 .AP int drawableX in
320 Where to display image in \fIdrawable\fR: this is the x-coordinate
321 in \fIdrawable\fR where x-coordinate \fIimageX\fR of the image
322 should be displayed.
323 .AP int drawableY in
324 Where to display image in \fIdrawable\fR: this is the y-coordinate
325 in \fIdrawable\fR where y-coordinate \fIimageY\fR of the image
326 should be displayed.
327 .AP "int" widthPtr out
328 Store width of \fIimage\fR (in pixels) here.
329 .AP "int" heightPtr out
330 Store height of \fIimage\fR (in pixels) here.
331 .BE
332 .SH DESCRIPTION
333 .PP
334 These procedures are invoked by widgets that wish to display images.
335 \fBTk_GetImage\fR is invoked by a widget when it first decides to
336 display an image.
337 \fIname\fR gives the name of the desired image and \fItkwin\fR
338 identifies the window where the image will be displayed.
339 \fBTk_GetImage\fR looks up the image in the table of existing
340 images and returns a token for a new instance of the image.
341 If the image does not exist then \fBTk_GetImage\fR returns NULL
342 and leaves an error message in interpreter \fIinterp\fR's result.
343 .PP
344 When a widget wishes to actually display an image it must
345 call \fBTk_RedrawImage\fR, identifying the image (\fIimage\fR),
346 a region within the image to redisplay (\fIimageX\fR, \fIimageY\fR,
347 \fIwidth\fR, and \fIheight\fR), and a place to display the
348 image (\fIdrawable\fR, \fIdrawableX\fR, and \fIdrawableY\fR).
349 Tk will then invoke the appropriate image manager, which will
350 display the requested portion of the image before returning.
351 .PP
352 A widget can find out the dimensions of an image by calling
353 \fBTk_SizeOfImage\fR:  the width and height will be stored
354 in the locations given by \fIwidthPtr\fR and \fIheightPtr\fR,
355 respectively.
356 .PP
357 When a widget is finished with an image (e.g., the widget is
358 being deleted or it is going to use a different image instead
359 of the current one), it must call \fBTk_FreeImage\fR to
360 release the image instance.
361 The widget should never again use the image token after passing
362 it to \fBTk_FreeImage\fR.
363 There must be exactly one call to \fBTk_FreeImage\fR for each
364 call to \fBTk_GetImage\fR.
365 .PP
366 If the contents or size of an image changes, then any widgets
367 using the image will need to find out about the changes so that
368 they can redisplay themselves.
369 The \fIchangeProc\fR and \fIclientData\fR arguments to
370 \fBTk_GetImage\fR are used for this purpose.
371 \fIchangeProc\fR will be called by Tk whenever a change occurs
372 in the image;  it must match the following prototype:
373 .CS
374 typedef void \fBTk_ImageChangedProc\fR(
375         ClientData \fIclientData\fR,
376         int \fIx\fR,
377         int \fIy\fR,
378         int \fIwidth\fR,
379         int \fIheight\fR,
380         int \fIimageWidth\fR,
381         int \fIimageHeight\fR);
382 .CE
383 The \fIclientData\fR argument to \fIchangeProc\fR is the same as the
384 \fIclientData\fR argument to \fBTk_GetImage\fR.
385 It is usually a pointer to the widget record for the widget or
386 some other data structure managed by the widget.
387 The arguments \fIx\fR, \fIy\fR, \fIwidth\fR, and \fIheight\fR
388 identify a region within the image that must be redisplayed;
389 they are specified in pixels measured from the upper-left
390 corner of the image.
391 The arguments \fIimageWidth\fR and \fIimageHeight\fR give
392 the image's (new) size.
393 .SH "SEE ALSO"
394 Tk_CreateImageType
395 .SH KEYWORDS
396 images, redisplay