sync
[gir-1.1] / GdkPixbuf-2.0.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.1"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GModule" version="2.0"/>
11   <include name="GObject" version="2.0"/>
12   <include name="Gio" version="2.0"/>
13   <namespace name="GdkPixbuf"
14              version="2.0"
15              shared-library="libgdk_pixbuf-2.0.so.0"
16              c:prefix="Gdk">
17     <enumeration name="Colorspace"
18                  glib:type-name="GdkColorspace"
19                  glib:get-type="gdk_colorspace_get_type"
20                  c:type="GdkColorspace">
21       <member name="rgb"
22               value="0"
23               c:identifier="GDK_COLORSPACE_RGB"
24               glib:nick="rgb"/>
25     </enumeration>
26     <constant name="FEATURES_H" value="1">
27       <type name="int"/>
28     </constant>
29     <enumeration name="InterpType"
30                  glib:type-name="GdkInterpType"
31                  glib:get-type="gdk_interp_type_get_type"
32                  c:type="GdkInterpType">
33       <member name="nearest"
34               value="0"
35               c:identifier="GDK_INTERP_NEAREST"
36               glib:nick="nearest"/>
37       <member name="tiles"
38               value="1"
39               c:identifier="GDK_INTERP_TILES"
40               glib:nick="tiles"/>
41       <member name="bilinear"
42               value="2"
43               c:identifier="GDK_INTERP_BILINEAR"
44               glib:nick="bilinear"/>
45       <member name="hyper"
46               value="3"
47               c:identifier="GDK_INTERP_HYPER"
48               glib:nick="hyper"/>
49     </enumeration>
50     <constant name="MAGIC_NUMBER" value="1197763408">
51       <type name="int"/>
52     </constant>
53     <constant name="MAJOR" value="2">
54       <type name="int"/>
55     </constant>
56     <constant name="MICRO" value="1">
57       <type name="int"/>
58     </constant>
59     <constant name="MINOR" value="21">
60       <type name="int"/>
61     </constant>
62     <constant name="PIXDATA_HEADER_LENGTH" value="24">
63       <type name="int"/>
64     </constant>
65     <class name="Pixbuf"
66            c:type="GdkPixbuf"
67            parent="GObject.Object"
68            glib:type-name="GdkPixbuf"
69            glib:get-type="gdk_pixbuf_get_type">
70       <constructor name="new" c:identifier="gdk_pixbuf_new">
71         <doc xml:whitespace="preserve">Creates a new #GdkPixbuf structure and allocates a buffer for it.  The 
72 buffer has an optimal rowstride.  Note that the buffer is not cleared;
73 you will have to fill it completely yourself.
74 %NULL if not enough memory could be allocated for the image buffer.</doc>
75         <return-value transfer-ownership="full">
76           <doc xml:whitespace="preserve">A newly-created #GdkPixbuf with a reference count of 1, or</doc>
77           <type name="Pixbuf" c:type="GdkPixbuf*"/>
78         </return-value>
79         <parameters>
80           <parameter name="colorspace" transfer-ownership="none">
81             <doc xml:whitespace="preserve">Color space for image</doc>
82             <type name="Colorspace" c:type="GdkColorspace"/>
83           </parameter>
84           <parameter name="has_alpha" transfer-ownership="none">
85             <doc xml:whitespace="preserve">Whether the image should have transparency information</doc>
86             <type name="boolean" c:type="gboolean"/>
87           </parameter>
88           <parameter name="bits_per_sample" transfer-ownership="none">
89             <doc xml:whitespace="preserve">Number of bits per color sample</doc>
90             <type name="int" c:type="int"/>
91           </parameter>
92           <parameter name="width" transfer-ownership="none">
93             <doc xml:whitespace="preserve">Width of image in pixels, must be &gt; 0</doc>
94             <type name="int" c:type="int"/>
95           </parameter>
96           <parameter name="height" transfer-ownership="none">
97             <doc xml:whitespace="preserve">Height of image in pixels, must be &gt; 0</doc>
98             <type name="int" c:type="int"/>
99           </parameter>
100         </parameters>
101       </constructor>
102       <constructor name="new_subpixbuf"
103                    c:identifier="gdk_pixbuf_new_subpixbuf">
104         <doc xml:whitespace="preserve">Creates a new pixbuf which represents a sub-region of
105 original pixbuf, so writing to one affects both.
106 The new pixbuf holds a reference to @src_pixbuf, so
107 is finalized.</doc>
108         <return-value transfer-ownership="full">
109           <doc xml:whitespace="preserve">a new pixbuf</doc>
110           <type name="Pixbuf" c:type="GdkPixbuf*"/>
111         </return-value>
112         <parameters>
113           <parameter name="src_pixbuf" transfer-ownership="none">
114             <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
115             <type name="Pixbuf" c:type="GdkPixbuf*"/>
116           </parameter>
117           <parameter name="src_x" transfer-ownership="none">
118             <doc xml:whitespace="preserve">X coord in @src_pixbuf</doc>
119             <type name="int" c:type="int"/>
120           </parameter>
121           <parameter name="src_y" transfer-ownership="none">
122             <doc xml:whitespace="preserve">Y coord in @src_pixbuf</doc>
123             <type name="int" c:type="int"/>
124           </parameter>
125           <parameter name="width" transfer-ownership="none">
126             <doc xml:whitespace="preserve">width of region in @src_pixbuf</doc>
127             <type name="int" c:type="int"/>
128           </parameter>
129           <parameter name="height" transfer-ownership="none">
130             <doc xml:whitespace="preserve">height of region in @src_pixbuf</doc>
131             <type name="int" c:type="int"/>
132           </parameter>
133         </parameters>
134       </constructor>
135       <constructor name="new_from_file"
136                    c:identifier="gdk_pixbuf_new_from_file"
137                    throws="1">
138         <doc xml:whitespace="preserve">Creates a new pixbuf by loading an image from a file.  The file format is
139 detected automatically. If %NULL is returned, then @error will be set.
140 Possible errors are in the #GDK_PIXBUF_ERROR and #G_FILE_ERROR domains.
141 there was no loader for the file's format, there was not enough memory to
142 allocate the image buffer, or the image file contained invalid data.</doc>
143         <return-value transfer-ownership="full">
144           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1, or %NULL if</doc>
145           <type name="Pixbuf" c:type="GdkPixbuf*"/>
146         </return-value>
147         <parameters>
148           <parameter name="filename" transfer-ownership="none">
149             <doc xml:whitespace="preserve">Name of file to load, in the GLib file name encoding</doc>
150             <type name="utf8" c:type="char*"/>
151           </parameter>
152         </parameters>
153       </constructor>
154       <constructor name="new_from_file_at_size"
155                    c:identifier="gdk_pixbuf_new_from_file_at_size"
156                    version="2.4"
157                    throws="1">
158         <doc xml:whitespace="preserve">Creates a new pixbuf by loading an image from a file.  
159 The file format is detected automatically. If %NULL is returned, then 
160 #G_FILE_ERROR domains.
161 The image will be scaled to fit in the requested size, preserving
162 the image's aspect ratio. Note that the returned pixbuf may be smaller
163 than @width x @height, if the aspect ratio requires it. To load
164 and image at the requested size, regardless of aspect ratio, use
165 gdk_pixbuf_new_from_file_at_scale().
166 %NULL if any of several error conditions occurred:  the file could not 
167 be opened, there was no loader for the file's format, there was not 
168 enough memory to allocate the image buffer, or the image file contained 
169 invalid data.</doc>
170         <return-value transfer-ownership="full">
171           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1, or</doc>
172           <type name="Pixbuf" c:type="GdkPixbuf*"/>
173         </return-value>
174         <parameters>
175           <parameter name="filename" transfer-ownership="none">
176             <doc xml:whitespace="preserve">Name of file to load, in the GLib file name encoding</doc>
177             <type name="utf8" c:type="char*"/>
178           </parameter>
179           <parameter name="width" transfer-ownership="none">
180             <doc xml:whitespace="preserve">The width the image should have or -1 to not constrain the width</doc>
181             <type name="int" c:type="int"/>
182           </parameter>
183           <parameter name="height" transfer-ownership="none">
184             <doc xml:whitespace="preserve">The height the image should have or -1 to not constrain the height</doc>
185             <type name="int" c:type="int"/>
186           </parameter>
187         </parameters>
188       </constructor>
189       <constructor name="new_from_file_at_scale"
190                    c:identifier="gdk_pixbuf_new_from_file_at_scale"
191                    version="2.6"
192                    throws="1">
193         <doc xml:whitespace="preserve">Creates a new pixbuf by loading an image from a file.  The file format is
194 detected automatically. If %NULL is returned, then @error will be set.
195 Possible errors are in the #GDK_PIXBUF_ERROR and #G_FILE_ERROR domains.
196 The image will be scaled to fit in the requested size, optionally preserving
197 the image's aspect ratio. 
198 When preserving the aspect ratio, a @width of -1 will cause the image
199 to be scaled to the exact given height, and a @height of -1 will cause
200 the image to be scaled to the exact given width. When not preserving
201 aspect ratio, a @width or @height of -1 means to not scale the image 
202 at all in that dimension. Negative values for @width and @height are 
203 allowed since 2.8.
204 there was no loader for the file's format, there was not enough memory to
205 allocate the image buffer, or the image file contained invalid data.</doc>
206         <return-value transfer-ownership="full">
207           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1, or %NULL</doc>
208           <type name="Pixbuf" c:type="GdkPixbuf*"/>
209         </return-value>
210         <parameters>
211           <parameter name="filename" transfer-ownership="none">
212             <doc xml:whitespace="preserve">Name of file to load, in the GLib file name encoding</doc>
213             <type name="utf8" c:type="char*"/>
214           </parameter>
215           <parameter name="width" transfer-ownership="none">
216             <doc xml:whitespace="preserve">The width the image should have or -1 to not constrain the width</doc>
217             <type name="int" c:type="int"/>
218           </parameter>
219           <parameter name="height" transfer-ownership="none">
220             <doc xml:whitespace="preserve">The height the image should have or -1 to not constrain the height</doc>
221             <type name="int" c:type="int"/>
222           </parameter>
223           <parameter name="preserve_aspect_ratio" transfer-ownership="none">
224             <doc xml:whitespace="preserve">%TRUE to preserve the image's aspect ratio</doc>
225             <type name="boolean" c:type="gboolean"/>
226           </parameter>
227         </parameters>
228       </constructor>
229       <constructor name="new_from_data"
230                    c:identifier="gdk_pixbuf_new_from_data">
231         <doc xml:whitespace="preserve">Creates a new #GdkPixbuf out of in-memory image data.  Currently only RGB
232 images with 8 bits per sample are supported.</doc>
233         <return-value transfer-ownership="full">
234           <doc xml:whitespace="preserve">A newly-created #GdkPixbuf structure with a reference count of 1.</doc>
235           <type name="Pixbuf" c:type="GdkPixbuf*"/>
236         </return-value>
237         <parameters>
238           <parameter name="data" transfer-ownership="none">
239             <doc xml:whitespace="preserve">Image data in 8-bit/sample packed format</doc>
240             <array c:type="guchar*">
241               <type name="uint8"/>
242             </array>
243           </parameter>
244           <parameter name="colorspace" transfer-ownership="none">
245             <doc xml:whitespace="preserve">Colorspace for the image data</doc>
246             <type name="Colorspace" c:type="GdkColorspace"/>
247           </parameter>
248           <parameter name="has_alpha" transfer-ownership="none">
249             <doc xml:whitespace="preserve">Whether the data has an opacity channel</doc>
250             <type name="boolean" c:type="gboolean"/>
251           </parameter>
252           <parameter name="bits_per_sample" transfer-ownership="none">
253             <doc xml:whitespace="preserve">Number of bits per sample</doc>
254             <type name="int" c:type="int"/>
255           </parameter>
256           <parameter name="width" transfer-ownership="none">
257             <doc xml:whitespace="preserve">Width of the image in pixels, must be &gt; 0</doc>
258             <type name="int" c:type="int"/>
259           </parameter>
260           <parameter name="height" transfer-ownership="none">
261             <doc xml:whitespace="preserve">Height of the image in pixels, must be &gt; 0</doc>
262             <type name="int" c:type="int"/>
263           </parameter>
264           <parameter name="rowstride" transfer-ownership="none">
265             <doc xml:whitespace="preserve">Distance in bytes between row starts</doc>
266             <type name="int" c:type="int"/>
267           </parameter>
268           <parameter name="destroy_fn"
269                      transfer-ownership="none"
270                      scope="call"
271                      closure="8">
272             <doc xml:whitespace="preserve">Function used to free the data when the pixbuf's reference count drops to zero, or %NULL if the data should not be freed</doc>
273             <type name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify"/>
274           </parameter>
275           <parameter name="destroy_fn_data" transfer-ownership="none">
276             <doc xml:whitespace="preserve">Closure data to pass to the destroy notification function</doc>
277             <type name="any" c:type="gpointer"/>
278           </parameter>
279         </parameters>
280       </constructor>
281       <constructor name="new_from_xpm_data"
282                    c:identifier="gdk_pixbuf_new_from_xpm_data">
283         <doc xml:whitespace="preserve">Creates a new pixbuf by parsing XPM data in memory.  This data is commonly
284 the result of including an XPM file into a program's C source.</doc>
285         <return-value transfer-ownership="full">
286           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1.</doc>
287           <type name="Pixbuf" c:type="GdkPixbuf*"/>
288         </return-value>
289         <parameters>
290           <parameter name="data" transfer-ownership="none">
291             <doc xml:whitespace="preserve">Pointer to inline XPM data.</doc>
292             <array c:type="char**">
293               <type name="utf8"/>
294             </array>
295           </parameter>
296         </parameters>
297       </constructor>
298       <constructor name="new_from_inline"
299                    c:identifier="gdk_pixbuf_new_from_inline"
300                    throws="1">
301         <doc xml:whitespace="preserve">Create a #GdkPixbuf from a flat representation that is suitable for
302 storing as inline data in a program. This is useful if you want to
303 ship a program with images, but don't want to depend on any
304 external files.
305 GTK+ ships with a program called &lt;command&gt;gdk-pixbuf-csource&lt;/command&gt; 
306 which allows for conversion of #GdkPixbufs into such a inline representation.
307 In almost all cases, you should pass the &lt;option&gt;--raw&lt;/option&gt; flag to
308 &lt;command&gt;gdk-pixbuf-csource&lt;/command&gt;. A sample invocation would be:
309 &lt;informalexample&gt;&lt;programlisting&gt;
310 gdk-pixbuf-csource --raw --name=myimage_inline myimage.png
311 &lt;/programlisting&gt;&lt;/informalexample&gt;
312 For the typical case where the inline pixbuf is read-only static data,
313 you don't need to copy the pixel data unless you intend to write to
314 it, so you can pass %FALSE for @copy_pixels.  (If you pass 
315 &lt;option&gt;--rle&lt;/option&gt; to &lt;command&gt;gdk-pixbuf-csource&lt;/command&gt;, a copy 
316 will be made even if @copy_pixels is %FALSE, so using this option is 
317 generally a bad idea.)
318 If you create a pixbuf from const inline data compiled into your
319 program, it's probably safe to ignore errors and disable length checks, 
320 since things will always succeed:
321 &lt;informalexample&gt;&lt;programlisting&gt;
322 pixbuf = gdk_pixbuf_new_from_inline (-1, myimage_inline, FALSE, NULL);
323 &lt;/programlisting&gt;&lt;/informalexample&gt;
324 For non-const inline data, you could get out of memory. For untrusted 
325 inline data located at runtime, you could have corrupt inline data in 
326 addition.
327 count of 1, or %NULL if an error occurred.</doc>
328         <return-value transfer-ownership="full">
329           <doc xml:whitespace="preserve">A newly-created #GdkPixbuf structure with a reference,</doc>
330           <type name="Pixbuf" c:type="GdkPixbuf*"/>
331         </return-value>
332         <parameters>
333           <parameter name="data_length" transfer-ownership="none">
334             <doc xml:whitespace="preserve">Length in bytes of the @data argument or -1 to disable length checks</doc>
335             <type name="int" c:type="gint"/>
336           </parameter>
337           <parameter name="data" transfer-ownership="none">
338             <doc xml:whitespace="preserve">Byte data containing a serialized #GdkPixdata structure</doc>
339             <array c:type="guint8*">
340               <type name="uint8"/>
341             </array>
342           </parameter>
343           <parameter name="copy_pixels" transfer-ownership="none">
344             <doc xml:whitespace="preserve">Whether to copy the pixel data, or use direct pointers</doc>
345             <type name="boolean" c:type="gboolean"/>
346           </parameter>
347         </parameters>
348       </constructor>
349       <constructor name="new_from_stream"
350                    c:identifier="gdk_pixbuf_new_from_stream"
351                    version="2.14"
352                    throws="1">
353         <doc xml:whitespace="preserve">Creates a new pixbuf by loading an image from an input stream.  
354 The file format is detected automatically. If %NULL is returned, then 
355 from another thread. If the operation was cancelled, the error 
356 %GIO_ERROR_CANCELLED will be returned. Other possible errors are in 
357 the #GDK_PIXBUF_ERROR and %G_IO_ERROR domains. 
358 The stream is not closed.
359 not supported, there was not enough memory to allocate the image buffer, 
360 the stream contained invalid data, or the operation was cancelled.</doc>
361         <return-value transfer-ownership="full">
362           <doc xml:whitespace="preserve">A newly-created pixbuf, or %NULL if any of several error</doc>
363           <type name="Pixbuf" c:type="GdkPixbuf*"/>
364         </return-value>
365         <parameters>
366           <parameter name="stream" transfer-ownership="none">
367             <doc xml:whitespace="preserve">a #GInputStream to load the pixbuf from</doc>
368             <type name="Gio.InputStream" c:type="GInputStream*"/>
369           </parameter>
370           <parameter name="cancellable"
371                      transfer-ownership="none"
372                      allow-none="1">
373             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
374             <type name="Gio.Cancellable" c:type="GCancellable*"/>
375           </parameter>
376         </parameters>
377       </constructor>
378       <constructor name="new_from_stream_at_scale"
379                    c:identifier="gdk_pixbuf_new_from_stream_at_scale"
380                    version="2.14"
381                    throws="1">
382         <doc xml:whitespace="preserve">Creates a new pixbuf by loading an image from an input stream.  
383 The file format is detected automatically. If %NULL is returned, then 
384 from another thread. If the operation was cancelled, the error 
385 %GIO_ERROR_CANCELLED will be returned. Other possible errors are in 
386 the #GDK_PIXBUF_ERROR and %G_IO_ERROR domains. 
387 The image will be scaled to fit in the requested size, optionally 
388 preserving the image's aspect ratio. When preserving the aspect ratio, 
389 a @width of -1 will cause the image to be scaled to the exact given 
390 height, and a @height of -1 will cause the image to be scaled to the 
391 exact given width. When not preserving aspect ratio, a @width or 
392 The stream is not closed.
393 not supported, there was not enough memory to allocate the image buffer, 
394 the stream contained invalid data, or the operation was cancelled.</doc>
395         <return-value transfer-ownership="full">
396           <doc xml:whitespace="preserve">A newly-created pixbuf, or %NULL if any of several error</doc>
397           <type name="Pixbuf" c:type="GdkPixbuf*"/>
398         </return-value>
399         <parameters>
400           <parameter name="stream" transfer-ownership="none">
401             <doc xml:whitespace="preserve">a #GInputStream to load the pixbuf from</doc>
402             <type name="Gio.InputStream" c:type="GInputStream*"/>
403           </parameter>
404           <parameter name="width" transfer-ownership="none">
405             <doc xml:whitespace="preserve">The width the image should have or -1 to not constrain the width</doc>
406             <type name="int" c:type="gint"/>
407           </parameter>
408           <parameter name="height" transfer-ownership="none">
409             <doc xml:whitespace="preserve">The height the image should have or -1 to not constrain the height</doc>
410             <type name="int" c:type="gint"/>
411           </parameter>
412           <parameter name="preserve_aspect_ratio" transfer-ownership="none">
413             <doc xml:whitespace="preserve">%TRUE to preserve the image's aspect ratio</doc>
414             <type name="boolean" c:type="gboolean"/>
415           </parameter>
416           <parameter name="cancellable"
417                      transfer-ownership="none"
418                      allow-none="1">
419             <doc xml:whitespace="preserve">optional #GCancellable object, %NULL to ignore</doc>
420             <type name="Gio.Cancellable" c:type="GCancellable*"/>
421           </parameter>
422         </parameters>
423       </constructor>
424       <function name="get_formats"
425                 c:identifier="gdk_pixbuf_get_formats"
426                 version="2.2">
427         <doc xml:whitespace="preserve">Obtains the available information about the image formats supported
428 by GdkPixbuf.
429 image formats.  The list should be freed when it is no longer needed, 
430 but the structures themselves are owned by #GdkPixbuf and should not be 
431 freed.</doc>
432         <return-value transfer-ownership="full">
433           <doc xml:whitespace="preserve">A list of #GdkPixbufFormat&lt;!-- --&gt;s describing the supported</doc>
434           <type name="GLib.SList" c:type="GSList*">
435             <type name="any" c:type="gpointer"/>
436           </type>
437         </return-value>
438       </function>
439       <function name="get_file_info"
440                 c:identifier="gdk_pixbuf_get_file_info"
441                 version="2.4">
442         <doc xml:whitespace="preserve">Parses an image file far enough to determine its format and size.
443 or %NULL if the image format wasn't recognized. The return value 
444 is owned by GdkPixbuf and should not be freed.</doc>
445         <return-value transfer-ownership="full">
446           <doc xml:whitespace="preserve">A #GdkPixbufFormat describing the image format of the file</doc>
447           <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
448         </return-value>
449         <parameters>
450           <parameter name="filename" transfer-ownership="none">
451             <doc xml:whitespace="preserve">The name of the file to identify.</doc>
452             <type name="utf8" c:type="gchar*"/>
453           </parameter>
454           <parameter name="width"
455                      direction="out"
456                      caller-allocates="0"
457                      transfer-ownership="full">
458             <doc xml:whitespace="preserve">Return location for the width of the image, or %NULL</doc>
459             <type name="int" c:type="gint*"/>
460           </parameter>
461           <parameter name="height"
462                      direction="out"
463                      caller-allocates="0"
464                      transfer-ownership="full">
465             <doc xml:whitespace="preserve">Return location for the height of the image, or %NULL</doc>
466             <type name="int" c:type="gint*"/>
467           </parameter>
468         </parameters>
469       </function>
470       <function name="from_pixdata"
471                 c:identifier="gdk_pixbuf_from_pixdata"
472                 throws="1">
473         <doc xml:whitespace="preserve">Converts a #GdkPixdata to a #GdkPixbuf. If @copy_pixels is %TRUE or
474 if the pixel data is run-length-encoded, the pixel data is copied into
475 newly-allocated memory; otherwise it is reused.</doc>
476         <return-value transfer-ownership="full">
477           <doc xml:whitespace="preserve">a new #GdkPixbuf.</doc>
478           <type name="Pixbuf" c:type="GdkPixbuf*"/>
479         </return-value>
480         <parameters>
481           <parameter name="pixdata" transfer-ownership="none">
482             <doc xml:whitespace="preserve">a #GdkPixdata to convert into a #GdkPixbuf.</doc>
483             <type name="Pixdata" c:type="GdkPixdata*"/>
484           </parameter>
485           <parameter name="copy_pixels" transfer-ownership="none">
486             <doc xml:whitespace="preserve">whether to copy raw pixel data; run-length encoded pixel data is always copied.</doc>
487             <type name="boolean" c:type="gboolean"/>
488           </parameter>
489         </parameters>
490       </function>
491       <method name="ref"
492               c:identifier="gdk_pixbuf_ref"
493               deprecated="Use g_object_ref()."
494               deprecated-version="2.0">
495         <doc xml:whitespace="preserve">Adds a reference to a pixbuf.</doc>
496         <return-value transfer-ownership="full">
497           <doc xml:whitespace="preserve">The same as the @pixbuf argument.</doc>
498           <type name="Pixbuf" c:type="GdkPixbuf*"/>
499         </return-value>
500       </method>
501       <method name="unref"
502               c:identifier="gdk_pixbuf_unref"
503               deprecated="Use g_object_unref()."
504               deprecated-version="2.0">
505         <doc xml:whitespace="preserve">Removes a reference from a pixbuf.</doc>
506         <return-value transfer-ownership="none">
507           <type name="none" c:type="void"/>
508         </return-value>
509       </method>
510       <method name="get_colorspace" c:identifier="gdk_pixbuf_get_colorspace">
511         <doc xml:whitespace="preserve">Queries the color space of a pixbuf.</doc>
512         <return-value transfer-ownership="full">
513           <doc xml:whitespace="preserve">Color space.</doc>
514           <type name="Colorspace" c:type="GdkColorspace"/>
515         </return-value>
516       </method>
517       <method name="get_n_channels" c:identifier="gdk_pixbuf_get_n_channels">
518         <doc xml:whitespace="preserve">Queries the number of channels of a pixbuf.</doc>
519         <return-value transfer-ownership="none">
520           <doc xml:whitespace="preserve">Number of channels.</doc>
521           <type name="int" c:type="int"/>
522         </return-value>
523       </method>
524       <method name="get_has_alpha" c:identifier="gdk_pixbuf_get_has_alpha">
525         <doc xml:whitespace="preserve">Queries whether a pixbuf has an alpha channel (opacity information).</doc>
526         <return-value transfer-ownership="none">
527           <doc xml:whitespace="preserve">%TRUE if it has an alpha channel, %FALSE otherwise.</doc>
528           <type name="boolean" c:type="gboolean"/>
529         </return-value>
530       </method>
531       <method name="get_bits_per_sample"
532               c:identifier="gdk_pixbuf_get_bits_per_sample">
533         <doc xml:whitespace="preserve">Queries the number of bits per color sample in a pixbuf.</doc>
534         <return-value transfer-ownership="none">
535           <doc xml:whitespace="preserve">Number of bits per color sample.</doc>
536           <type name="int" c:type="int"/>
537         </return-value>
538       </method>
539       <method name="get_pixels" c:identifier="gdk_pixbuf_get_pixels">
540         <doc xml:whitespace="preserve">Queries a pointer to the pixel data of a pixbuf.
541 for information about how the pixel data is stored in
542 memory.</doc>
543         <return-value transfer-ownership="full">
544           <doc xml:whitespace="preserve">A pointer to the pixbuf's pixel data.  Please see &lt;xref linkend="image-data"/&gt;</doc>
545           <array c:type="guchar*">
546             <type name="uint8"/>
547           </array>
548         </return-value>
549       </method>
550       <method name="get_width" c:identifier="gdk_pixbuf_get_width">
551         <doc xml:whitespace="preserve">Queries the width of a pixbuf.</doc>
552         <return-value transfer-ownership="none">
553           <doc xml:whitespace="preserve">Width in pixels.</doc>
554           <type name="int" c:type="int"/>
555         </return-value>
556       </method>
557       <method name="get_height" c:identifier="gdk_pixbuf_get_height">
558         <doc xml:whitespace="preserve">Queries the height of a pixbuf.</doc>
559         <return-value transfer-ownership="none">
560           <doc xml:whitespace="preserve">Height in pixels.</doc>
561           <type name="int" c:type="int"/>
562         </return-value>
563       </method>
564       <method name="get_rowstride" c:identifier="gdk_pixbuf_get_rowstride">
565         <doc xml:whitespace="preserve">Queries the rowstride of a pixbuf, which is the number of bytes between the start of a row
566 and the start of the next row.</doc>
567         <return-value transfer-ownership="none">
568           <doc xml:whitespace="preserve">Distance between row starts.</doc>
569           <type name="int" c:type="int"/>
570         </return-value>
571       </method>
572       <method name="copy" c:identifier="gdk_pixbuf_copy">
573         <doc xml:whitespace="preserve">Creates a new #GdkPixbuf with a copy of the information in the specified
574 not enough memory could be allocated.</doc>
575         <return-value transfer-ownership="full">
576           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1, or %NULL if</doc>
577           <type name="Pixbuf" c:type="GdkPixbuf*"/>
578         </return-value>
579       </method>
580       <method name="fill" c:identifier="gdk_pixbuf_fill">
581         <doc xml:whitespace="preserve">Clears a pixbuf to the given RGBA value, converting the RGBA value into
582 the pixbuf's pixel format. The alpha will be ignored if the pixbuf
583 doesn't have an alpha channel.</doc>
584         <return-value transfer-ownership="none">
585           <type name="none" c:type="void"/>
586         </return-value>
587         <parameters>
588           <parameter name="pixel" transfer-ownership="none">
589             <doc xml:whitespace="preserve">RGBA pixel to clear to (0xffffffff is opaque white, 0x00000000 transparent black)</doc>
590             <type name="uint32" c:type="guint32"/>
591           </parameter>
592         </parameters>
593       </method>
594       <method name="save" c:identifier="gdk_pixbuf_save" introspectable="0">
595         <doc xml:whitespace="preserve">Saves pixbuf to a file in format @type. By default, "jpeg", "png", "ico" 
596 and "bmp" are possible file formats to save in, but more formats may be
597 installed. The list of all writable formats can be determined in the 
598 following way:
599 |[
600 void add_if_writable (GdkPixbufFormat *data, GSList **list)
601 {
602 if (gdk_pixbuf_format_is_writable (data))
603 *list = g_slist_prepend (*list, data);
604 }
605 GSList *formats = gdk_pixbuf_get_formats ();
606 GSList *writable_formats = NULL;
607 g_slist_foreach (formats, add_if_writable, &amp;writable_formats);
608 g_slist_free (formats);
609 ]|
610 If @error is set, %FALSE will be returned. Possible errors include 
611 those in the #GDK_PIXBUF_ERROR domain and those in the #G_FILE_ERROR domain.
612 The variable argument list should be %NULL-terminated; if not empty,
613 it should contain pairs of strings that modify the save
614 parameters. For example:
615 &lt;informalexample&gt;&lt;programlisting&gt;
616 gdk_pixbuf_save (pixbuf, handle, "jpeg", &amp;amp;error,
617 "quality", "100", NULL);
618 &lt;/programlisting&gt;&lt;/informalexample&gt;
619 Currently only few parameters exist. JPEG images can be saved with a
620 "quality" parameter; its value should be in the range [0,100].
621 Text chunks can be attached to PNG images by specifying parameters of
622 the form "tEXt::key", where key is an ASCII string of length 1-79.
623 The values are UTF-8 encoded strings. The PNG compression level can
624 be specified using the "compression" parameter; it's value is in an
625 integer in the range of [0,9].
626 ICC color profiles can also be embedded into PNG and TIFF images.
627 The "icc-profile" value should be the complete ICC profile encoded
628 into base64.
629 &lt;informalexample&gt;&lt;programlisting&gt;
630 gchar *contents;
631 gchar *contents_encode;
632 gsize length;
633 g_file_get_contents ("/home/hughsie/.color/icc/L225W.icm", &amp;contents, &amp;length, NULL);
634 contents_encode = g_base64_encode ((const guchar *) contents, length);
635 gdk_pixbuf_save (pixbuf, handle, "png", &amp;amp;error,
636 "icc-profile", contents_encode,
637 NULL);
638 &lt;/programlisting&gt;&lt;/informalexample&gt;
639 TIFF images recognize a "compression" option which acceps an integer value.
640 Among the codecs are 1 None, 2 Huffman, 5 LZW, 7 JPEG and 8 Deflate, see
641 the libtiff documentation and tiff.h for all supported codec values.
642 ICO images can be saved in depth 16, 24, or 32, by using the "depth"
643 parameter. When the ICO saver is given "x_hot" and "y_hot" parameters,
644 it produces a CUR instead of an ICO.</doc>
645         <return-value transfer-ownership="none">
646           <doc xml:whitespace="preserve">whether an error was set</doc>
647           <type name="boolean" c:type="gboolean"/>
648         </return-value>
649         <parameters>
650           <parameter name="filename" transfer-ownership="none">
651             <doc xml:whitespace="preserve">name of file to save.</doc>
652             <type name="utf8" c:type="char*"/>
653           </parameter>
654           <parameter name="type" transfer-ownership="none">
655             <doc xml:whitespace="preserve">name of file format.</doc>
656             <type name="utf8" c:type="char*"/>
657           </parameter>
658           <parameter name="error" transfer-ownership="none" allow-none="1">
659             <doc xml:whitespace="preserve">return location for error, or %NULL</doc>
660             <type name="GLib.Error" c:type="GError**"/>
661           </parameter>
662           <parameter transfer-ownership="none">
663             <varargs>
664             </varargs>
665           </parameter>
666         </parameters>
667       </method>
668       <method name="savev" c:identifier="gdk_pixbuf_savev" throws="1">
669         <doc xml:whitespace="preserve">Saves pixbuf to a file in @type, which is currently "jpeg", "png", "tiff", "ico" or "bmp".
670 If @error is set, %FALSE will be returned. 
671 See gdk_pixbuf_save () for more details.</doc>
672         <return-value transfer-ownership="none">
673           <doc xml:whitespace="preserve">whether an error was set</doc>
674           <type name="boolean" c:type="gboolean"/>
675         </return-value>
676         <parameters>
677           <parameter name="filename" transfer-ownership="none">
678             <doc xml:whitespace="preserve">name of file to save.</doc>
679             <type name="utf8" c:type="char*"/>
680           </parameter>
681           <parameter name="type" transfer-ownership="none">
682             <doc xml:whitespace="preserve">name of file format.</doc>
683             <type name="utf8" c:type="char*"/>
684           </parameter>
685           <parameter name="option_keys" transfer-ownership="none">
686             <doc xml:whitespace="preserve">name of options to set, %NULL-terminated</doc>
687             <array c:type="char**">
688               <type name="utf8"/>
689             </array>
690           </parameter>
691           <parameter name="option_values" transfer-ownership="none">
692             <doc xml:whitespace="preserve">values for named options</doc>
693             <array c:type="char**">
694               <type name="utf8"/>
695             </array>
696           </parameter>
697         </parameters>
698       </method>
699       <method name="save_to_callback"
700               c:identifier="gdk_pixbuf_save_to_callback"
701               version="2.4"
702               introspectable="0">
703         <doc xml:whitespace="preserve">Saves pixbuf in format @type by feeding the produced data to a 
704 callback. Can be used when you want to store the image to something 
705 other than a file, such as an in-memory buffer or a socket.  
706 If @error is set, %FALSE will be returned. Possible errors
707 include those in the #GDK_PIXBUF_ERROR domain and whatever the save
708 function generates.
709 See gdk_pixbuf_save() for more details.</doc>
710         <return-value transfer-ownership="none">
711           <doc xml:whitespace="preserve">whether an error was set</doc>
712           <type name="boolean" c:type="gboolean"/>
713         </return-value>
714         <parameters>
715           <parameter name="save_func"
716                      transfer-ownership="none"
717                      scope="call"
718                      closure="2">
719             <doc xml:whitespace="preserve">a function that is called to save each block of data that the save routine generates.</doc>
720             <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
721           </parameter>
722           <parameter name="user_data" transfer-ownership="none">
723             <doc xml:whitespace="preserve">user data to pass to the save function.</doc>
724             <type name="any" c:type="gpointer"/>
725           </parameter>
726           <parameter name="type" transfer-ownership="none">
727             <doc xml:whitespace="preserve">name of file format.</doc>
728             <type name="utf8" c:type="char*"/>
729           </parameter>
730           <parameter name="error" transfer-ownership="none" allow-none="1">
731             <doc xml:whitespace="preserve">return location for error, or %NULL</doc>
732             <type name="GLib.Error" c:type="GError**"/>
733           </parameter>
734           <parameter transfer-ownership="none">
735             <varargs>
736             </varargs>
737           </parameter>
738         </parameters>
739       </method>
740       <method name="save_to_callbackv"
741               c:identifier="gdk_pixbuf_save_to_callbackv"
742               version="2.4"
743               throws="1">
744         <doc xml:whitespace="preserve">Saves pixbuf to a callback in format @type, which is currently "jpeg",
745 "png", "tiff", "ico" or "bmp".  If @error is set, %FALSE will be returned. See
746 gdk_pixbuf_save_to_callback () for more details.</doc>
747         <return-value transfer-ownership="none">
748           <doc xml:whitespace="preserve">whether an error was set</doc>
749           <type name="boolean" c:type="gboolean"/>
750         </return-value>
751         <parameters>
752           <parameter name="save_func"
753                      transfer-ownership="none"
754                      scope="call"
755                      closure="2">
756             <doc xml:whitespace="preserve">a function that is called to save each block of data that the save routine generates.</doc>
757             <type name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc"/>
758           </parameter>
759           <parameter name="user_data" transfer-ownership="none">
760             <doc xml:whitespace="preserve">user data to pass to the save function.</doc>
761             <type name="any" c:type="gpointer"/>
762           </parameter>
763           <parameter name="type" transfer-ownership="none">
764             <doc xml:whitespace="preserve">name of file format.</doc>
765             <type name="utf8" c:type="char*"/>
766           </parameter>
767           <parameter name="option_keys" transfer-ownership="none">
768             <doc xml:whitespace="preserve">name of options to set, %NULL-terminated</doc>
769             <array c:type="char**">
770               <type name="utf8"/>
771             </array>
772           </parameter>
773           <parameter name="option_values" transfer-ownership="none">
774             <doc xml:whitespace="preserve">values for named options</doc>
775             <array c:type="char**">
776               <type name="utf8"/>
777             </array>
778           </parameter>
779         </parameters>
780       </method>
781       <method name="save_to_buffer"
782               c:identifier="gdk_pixbuf_save_to_buffer"
783               version="2.4"
784               introspectable="0">
785         <doc xml:whitespace="preserve">Saves pixbuf to a new buffer in format @type, which is currently "jpeg",
786 "png", "tiff", "ico" or "bmp".  This is a convenience function that uses
787 gdk_pixbuf_save_to_callback() to do the real work. Note that the buffer 
788 is not nul-terminated and may contain embedded  nuls.
789 If @error is set, %FALSE will be returned and @buffer will be set to
790 %NULL. Possible errors include those in the #GDK_PIXBUF_ERROR
791 domain.
792 See gdk_pixbuf_save() for more details.</doc>
793         <return-value transfer-ownership="none">
794           <doc xml:whitespace="preserve">whether an error was set</doc>
795           <type name="boolean" c:type="gboolean"/>
796         </return-value>
797         <parameters>
798           <parameter name="buffer" transfer-ownership="none">
799             <doc xml:whitespace="preserve">location to receive a pointer to the new buffer.</doc>
800             <array c:type="gchar**">
801               <type name="utf8"/>
802             </array>
803           </parameter>
804           <parameter name="buffer_size"
805                      direction="out"
806                      caller-allocates="0"
807                      transfer-ownership="full">
808             <doc xml:whitespace="preserve">location to receive the size of the new buffer.</doc>
809             <type name="gsize" c:type="gsize*"/>
810           </parameter>
811           <parameter name="type" transfer-ownership="none">
812             <doc xml:whitespace="preserve">name of file format.</doc>
813             <type name="utf8" c:type="char*"/>
814           </parameter>
815           <parameter name="error" transfer-ownership="none" allow-none="1">
816             <doc xml:whitespace="preserve">return location for error, or %NULL</doc>
817             <type name="GLib.Error" c:type="GError**"/>
818           </parameter>
819           <parameter transfer-ownership="none">
820             <varargs>
821             </varargs>
822           </parameter>
823         </parameters>
824       </method>
825       <method name="save_to_bufferv"
826               c:identifier="gdk_pixbuf_save_to_bufferv"
827               version="2.4"
828               throws="1">
829         <doc xml:whitespace="preserve">Saves pixbuf to a new buffer in format @type, which is currently "jpeg",
830 "tiff", "png", "ico" or "bmp".  See gdk_pixbuf_save_to_buffer() 
831 for more details.</doc>
832         <return-value transfer-ownership="none">
833           <doc xml:whitespace="preserve">whether an error was set</doc>
834           <type name="boolean" c:type="gboolean"/>
835         </return-value>
836         <parameters>
837           <parameter name="buffer" transfer-ownership="none">
838             <doc xml:whitespace="preserve">location to receive a pointer to the new buffer.</doc>
839             <array c:type="gchar**">
840               <type name="utf8"/>
841             </array>
842           </parameter>
843           <parameter name="buffer_size"
844                      direction="out"
845                      caller-allocates="0"
846                      transfer-ownership="full">
847             <doc xml:whitespace="preserve">location to receive the size of the new buffer.</doc>
848             <type name="gsize" c:type="gsize*"/>
849           </parameter>
850           <parameter name="type" transfer-ownership="none">
851             <doc xml:whitespace="preserve">name of file format.</doc>
852             <type name="utf8" c:type="char*"/>
853           </parameter>
854           <parameter name="option_keys" transfer-ownership="none">
855             <doc xml:whitespace="preserve">name of options to set, %NULL-terminated</doc>
856             <array c:type="char**">
857               <type name="utf8"/>
858             </array>
859           </parameter>
860           <parameter name="option_values" transfer-ownership="none">
861             <doc xml:whitespace="preserve">values for named options</doc>
862             <array c:type="char**">
863               <type name="utf8"/>
864             </array>
865           </parameter>
866         </parameters>
867       </method>
868       <method name="save_to_stream"
869               c:identifier="gdk_pixbuf_save_to_stream"
870               introspectable="0">
871         <return-value transfer-ownership="none">
872           <type name="boolean" c:type="gboolean"/>
873         </return-value>
874         <parameters>
875           <parameter name="stream" transfer-ownership="none">
876             <type name="Gio.OutputStream" c:type="GOutputStream*"/>
877           </parameter>
878           <parameter name="type" transfer-ownership="none">
879             <type name="utf8" c:type="char*"/>
880           </parameter>
881           <parameter name="cancellable"
882                      transfer-ownership="none"
883                      allow-none="1">
884             <type name="Gio.Cancellable" c:type="GCancellable*"/>
885           </parameter>
886           <parameter name="error" transfer-ownership="none">
887             <type name="GLib.Error" c:type="GError**"/>
888           </parameter>
889           <parameter transfer-ownership="none">
890             <varargs>
891             </varargs>
892           </parameter>
893         </parameters>
894       </method>
895       <method name="add_alpha" c:identifier="gdk_pixbuf_add_alpha">
896         <doc xml:whitespace="preserve">Takes an existing pixbuf and adds an alpha channel to it.
897 If the existing pixbuf already had an alpha channel, the channel
898 values are copied from the original; otherwise, the alpha channel
899 is initialized to 255 (full opacity).
900 If @substitute_color is %TRUE, then the color specified by (@r, @g, @b) will be
901 assigned zero opacity. That is, if you pass (255, 255, 255) for the
902 substitute color, all white pixels will become fully transparent.</doc>
903         <return-value transfer-ownership="full">
904           <doc xml:whitespace="preserve">A newly-created pixbuf with a reference count of 1.</doc>
905           <type name="Pixbuf" c:type="GdkPixbuf*"/>
906         </return-value>
907         <parameters>
908           <parameter name="substitute_color" transfer-ownership="none">
909             <doc xml:whitespace="preserve">Whether to set a color to zero opacity.  If this is %FALSE, then the (@r, @g, @b) arguments will be ignored.</doc>
910             <type name="boolean" c:type="gboolean"/>
911           </parameter>
912           <parameter name="r" transfer-ownership="none">
913             <doc xml:whitespace="preserve">Red value to substitute.</doc>
914             <type name="uint8" c:type="guchar"/>
915           </parameter>
916           <parameter name="g" transfer-ownership="none">
917             <doc xml:whitespace="preserve">Green value to substitute.</doc>
918             <type name="uint8" c:type="guchar"/>
919           </parameter>
920           <parameter name="b" transfer-ownership="none">
921             <doc xml:whitespace="preserve">Blue value to substitute.</doc>
922             <type name="uint8" c:type="guchar"/>
923           </parameter>
924         </parameters>
925       </method>
926       <method name="copy_area" c:identifier="gdk_pixbuf_copy_area">
927         <doc xml:whitespace="preserve">Copies a rectangular area from @src_pixbuf to @dest_pixbuf.  Conversion of
928 pixbuf formats is done automatically.
929 If the source rectangle overlaps the destination rectangle on the
930 same pixbuf, it will be overwritten during the copy operation.
931 Therefore, you can not use this function to scroll a pixbuf.</doc>
932         <return-value transfer-ownership="none">
933           <type name="none" c:type="void"/>
934         </return-value>
935         <parameters>
936           <parameter name="src_x" transfer-ownership="none">
937             <doc xml:whitespace="preserve">Source X coordinate within @src_pixbuf.</doc>
938             <type name="int" c:type="int"/>
939           </parameter>
940           <parameter name="src_y" transfer-ownership="none">
941             <doc xml:whitespace="preserve">Source Y coordinate within @src_pixbuf.</doc>
942             <type name="int" c:type="int"/>
943           </parameter>
944           <parameter name="width" transfer-ownership="none">
945             <doc xml:whitespace="preserve">Width of the area to copy.</doc>
946             <type name="int" c:type="int"/>
947           </parameter>
948           <parameter name="height" transfer-ownership="none">
949             <doc xml:whitespace="preserve">Height of the area to copy.</doc>
950             <type name="int" c:type="int"/>
951           </parameter>
952           <parameter name="dest_pixbuf" transfer-ownership="none">
953             <doc xml:whitespace="preserve">Destination pixbuf.</doc>
954             <type name="Pixbuf" c:type="GdkPixbuf*"/>
955           </parameter>
956           <parameter name="dest_x" transfer-ownership="none">
957             <doc xml:whitespace="preserve">X coordinate within @dest_pixbuf.</doc>
958             <type name="int" c:type="int"/>
959           </parameter>
960           <parameter name="dest_y" transfer-ownership="none">
961             <doc xml:whitespace="preserve">Y coordinate within @dest_pixbuf.</doc>
962             <type name="int" c:type="int"/>
963           </parameter>
964         </parameters>
965       </method>
966       <method name="saturate_and_pixelate"
967               c:identifier="gdk_pixbuf_saturate_and_pixelate">
968         <doc xml:whitespace="preserve">Modifies saturation and optionally pixelates @src, placing the result in
969 saturation is reduced (the image turns toward grayscale); if greater than
970 1.0, saturation is increased (the image gets more vivid colors). If @pixelate
971 is %TRUE, then pixels are faded in a checkerboard pattern to create a
972 pixelated image. @src and @dest must have the same image format, size, and
973 rowstride.</doc>
974         <return-value transfer-ownership="none">
975           <type name="none" c:type="void"/>
976         </return-value>
977         <parameters>
978           <parameter name="dest" transfer-ownership="none">
979             <doc xml:whitespace="preserve">place to write modified version of @src</doc>
980             <type name="Pixbuf" c:type="GdkPixbuf*"/>
981           </parameter>
982           <parameter name="saturation" transfer-ownership="none">
983             <doc xml:whitespace="preserve">saturation factor</doc>
984             <type name="float" c:type="gfloat"/>
985           </parameter>
986           <parameter name="pixelate" transfer-ownership="none">
987             <doc xml:whitespace="preserve">whether to pixelate</doc>
988             <type name="boolean" c:type="gboolean"/>
989           </parameter>
990         </parameters>
991       </method>
992       <method name="apply_embedded_orientation"
993               c:identifier="gdk_pixbuf_apply_embedded_orientation"
994               version="2.12">
995         <doc xml:whitespace="preserve">Takes an existing pixbuf and checks for the presence of an
996 associated "orientation" option, which may be provided by the 
997 jpeg loader (which reads the exif orientation tag) or the 
998 tiff loader (which reads the tiff orientation tag, and
999 compensates it for the partial transforms performed by 
1000 libtiff). If an orientation option/tag is present, the
1001 appropriate transform will be performed so that the pixbuf
1002 is oriented correctly.
1003 input pixbuf (with an increased reference count).</doc>
1004         <return-value transfer-ownership="full">
1005           <doc xml:whitespace="preserve">A newly-created pixbuf, or a reference to the</doc>
1006           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1007         </return-value>
1008       </method>
1009       <method name="get_option" c:identifier="gdk_pixbuf_get_option">
1010         <doc xml:whitespace="preserve">Looks up @key in the list of options that may have been attached to the
1011 function using gdk_pixbuf_set_option().
1012 For instance, the ANI loader provides "Title" and "Artist" options. 
1013 The ICO, XBM, and XPM loaders provide "x_hot" and "y_hot" hot-spot 
1014 options for cursor definitions. The PNG loader provides the tEXt ancillary
1015 chunk key/value pairs as options. Since 2.12, the TIFF and JPEG loaders
1016 return an "orientation" option string that corresponds to the embedded 
1017 TIFF/Exif orientation tag (if present).
1018 string that should not be freed or %NULL if @key was not found.</doc>
1019         <return-value transfer-ownership="none">
1020           <doc xml:whitespace="preserve">the value associated with @key. This is a nul-terminated</doc>
1021           <type name="utf8" c:type="gchar*"/>
1022         </return-value>
1023         <parameters>
1024           <parameter name="key" transfer-ownership="none">
1025             <doc xml:whitespace="preserve">a nul-terminated string.</doc>
1026             <type name="utf8" c:type="gchar*"/>
1027           </parameter>
1028         </parameters>
1029       </method>
1030       <method name="scale" c:identifier="gdk_pixbuf_scale">
1031         <doc xml:whitespace="preserve">Creates a transformation of the source image @src by scaling by
1032 then renders the rectangle (@dest_x, @dest_y, @dest_width,
1033 replacing the previous contents.
1034 Try to use gdk_pixbuf_scale_simple() first, this function is
1035 the industrial-strength power tool you can fall back to if
1036 gdk_pixbuf_scale_simple() isn't powerful enough.
1037 If the source rectangle overlaps the destination rectangle on the
1038 same pixbuf, it will be overwritten during the scaling which
1039 results in rendering artifacts.</doc>
1040         <return-value transfer-ownership="none">
1041           <type name="none" c:type="void"/>
1042         </return-value>
1043         <parameters>
1044           <parameter name="dest" transfer-ownership="none">
1045             <doc xml:whitespace="preserve">the #GdkPixbuf into which to render the results</doc>
1046             <type name="Pixbuf" c:type="GdkPixbuf*"/>
1047           </parameter>
1048           <parameter name="dest_x" transfer-ownership="none">
1049             <doc xml:whitespace="preserve">the left coordinate for region to render</doc>
1050             <type name="int" c:type="int"/>
1051           </parameter>
1052           <parameter name="dest_y" transfer-ownership="none">
1053             <doc xml:whitespace="preserve">the top coordinate for region to render</doc>
1054             <type name="int" c:type="int"/>
1055           </parameter>
1056           <parameter name="dest_width" transfer-ownership="none">
1057             <doc xml:whitespace="preserve">the width of the region to render</doc>
1058             <type name="int" c:type="int"/>
1059           </parameter>
1060           <parameter name="dest_height" transfer-ownership="none">
1061             <doc xml:whitespace="preserve">the height of the region to render</doc>
1062             <type name="int" c:type="int"/>
1063           </parameter>
1064           <parameter name="offset_x" transfer-ownership="none">
1065             <doc xml:whitespace="preserve">the offset in the X direction (currently rounded to an integer)</doc>
1066             <type name="double" c:type="double"/>
1067           </parameter>
1068           <parameter name="offset_y" transfer-ownership="none">
1069             <doc xml:whitespace="preserve">the offset in the Y direction (currently rounded to an integer)</doc>
1070             <type name="double" c:type="double"/>
1071           </parameter>
1072           <parameter name="scale_x" transfer-ownership="none">
1073             <doc xml:whitespace="preserve">the scale factor in the X direction</doc>
1074             <type name="double" c:type="double"/>
1075           </parameter>
1076           <parameter name="scale_y" transfer-ownership="none">
1077             <doc xml:whitespace="preserve">the scale factor in the Y direction</doc>
1078             <type name="double" c:type="double"/>
1079           </parameter>
1080           <parameter name="interp_type" transfer-ownership="none">
1081             <doc xml:whitespace="preserve">the interpolation type for the transformation.</doc>
1082             <type name="InterpType" c:type="GdkInterpType"/>
1083           </parameter>
1084         </parameters>
1085       </method>
1086       <method name="composite" c:identifier="gdk_pixbuf_composite">
1087         <doc xml:whitespace="preserve">Creates a transformation of the source image @src by scaling by
1088 This gives an image in the coordinates of the destination pixbuf.
1089 The rectangle (@dest_x, @dest_y, @dest_width, @dest_height)
1090 is then composited onto the corresponding rectangle of the
1091 original destination image.
1092 When the destination rectangle contains parts not in the source 
1093 image, the data at the edges of the source image is replicated
1094 to infinity. 
1095 &lt;figure id="pixbuf-composite-diagram"&gt;
1096 &lt;title&gt;Compositing of pixbufs&lt;/title&gt;
1097 &lt;graphic fileref="composite.png" format="PNG"/&gt;
1098 &lt;/figure&gt;</doc>
1099         <return-value transfer-ownership="none">
1100           <type name="none" c:type="void"/>
1101         </return-value>
1102         <parameters>
1103           <parameter name="dest" transfer-ownership="none">
1104             <doc xml:whitespace="preserve">the #GdkPixbuf into which to render the results</doc>
1105             <type name="Pixbuf" c:type="GdkPixbuf*"/>
1106           </parameter>
1107           <parameter name="dest_x" transfer-ownership="none">
1108             <doc xml:whitespace="preserve">the left coordinate for region to render</doc>
1109             <type name="int" c:type="int"/>
1110           </parameter>
1111           <parameter name="dest_y" transfer-ownership="none">
1112             <doc xml:whitespace="preserve">the top coordinate for region to render</doc>
1113             <type name="int" c:type="int"/>
1114           </parameter>
1115           <parameter name="dest_width" transfer-ownership="none">
1116             <doc xml:whitespace="preserve">the width of the region to render</doc>
1117             <type name="int" c:type="int"/>
1118           </parameter>
1119           <parameter name="dest_height" transfer-ownership="none">
1120             <doc xml:whitespace="preserve">the height of the region to render</doc>
1121             <type name="int" c:type="int"/>
1122           </parameter>
1123           <parameter name="offset_x" transfer-ownership="none">
1124             <doc xml:whitespace="preserve">the offset in the X direction (currently rounded to an integer)</doc>
1125             <type name="double" c:type="double"/>
1126           </parameter>
1127           <parameter name="offset_y" transfer-ownership="none">
1128             <doc xml:whitespace="preserve">the offset in the Y direction (currently rounded to an integer)</doc>
1129             <type name="double" c:type="double"/>
1130           </parameter>
1131           <parameter name="scale_x" transfer-ownership="none">
1132             <doc xml:whitespace="preserve">the scale factor in the X direction</doc>
1133             <type name="double" c:type="double"/>
1134           </parameter>
1135           <parameter name="scale_y" transfer-ownership="none">
1136             <doc xml:whitespace="preserve">the scale factor in the Y direction</doc>
1137             <type name="double" c:type="double"/>
1138           </parameter>
1139           <parameter name="interp_type" transfer-ownership="none">
1140             <doc xml:whitespace="preserve">the interpolation type for the transformation.</doc>
1141             <type name="InterpType" c:type="GdkInterpType"/>
1142           </parameter>
1143           <parameter name="overall_alpha" transfer-ownership="none">
1144             <doc xml:whitespace="preserve">overall alpha for source image (0..255)</doc>
1145             <type name="int" c:type="int"/>
1146           </parameter>
1147         </parameters>
1148       </method>
1149       <method name="composite_color" c:identifier="gdk_pixbuf_composite_color">
1150         <doc xml:whitespace="preserve">Creates a transformation of the source image @src by scaling by
1151 then composites the rectangle (@dest_x ,@dest_y, @dest_width,
1152 colors @color1 and @color2 and renders it onto the destination
1153 image.
1154 See gdk_pixbuf_composite_color_simple() for a simpler variant of this
1155 function suitable for many tasks.</doc>
1156         <return-value transfer-ownership="none">
1157           <type name="none" c:type="void"/>
1158         </return-value>
1159         <parameters>
1160           <parameter name="dest" transfer-ownership="none">
1161             <doc xml:whitespace="preserve">the #GdkPixbuf into which to render the results</doc>
1162             <type name="Pixbuf" c:type="GdkPixbuf*"/>
1163           </parameter>
1164           <parameter name="dest_x" transfer-ownership="none">
1165             <doc xml:whitespace="preserve">the left coordinate for region to render</doc>
1166             <type name="int" c:type="int"/>
1167           </parameter>
1168           <parameter name="dest_y" transfer-ownership="none">
1169             <doc xml:whitespace="preserve">the top coordinate for region to render</doc>
1170             <type name="int" c:type="int"/>
1171           </parameter>
1172           <parameter name="dest_width" transfer-ownership="none">
1173             <doc xml:whitespace="preserve">the width of the region to render</doc>
1174             <type name="int" c:type="int"/>
1175           </parameter>
1176           <parameter name="dest_height" transfer-ownership="none">
1177             <doc xml:whitespace="preserve">the height of the region to render</doc>
1178             <type name="int" c:type="int"/>
1179           </parameter>
1180           <parameter name="offset_x" transfer-ownership="none">
1181             <doc xml:whitespace="preserve">the offset in the X direction (currently rounded to an integer)</doc>
1182             <type name="double" c:type="double"/>
1183           </parameter>
1184           <parameter name="offset_y" transfer-ownership="none">
1185             <doc xml:whitespace="preserve">the offset in the Y direction (currently rounded to an integer)</doc>
1186             <type name="double" c:type="double"/>
1187           </parameter>
1188           <parameter name="scale_x" transfer-ownership="none">
1189             <doc xml:whitespace="preserve">the scale factor in the X direction</doc>
1190             <type name="double" c:type="double"/>
1191           </parameter>
1192           <parameter name="scale_y" transfer-ownership="none">
1193             <doc xml:whitespace="preserve">the scale factor in the Y direction</doc>
1194             <type name="double" c:type="double"/>
1195           </parameter>
1196           <parameter name="interp_type" transfer-ownership="none">
1197             <doc xml:whitespace="preserve">the interpolation type for the transformation.</doc>
1198             <type name="InterpType" c:type="GdkInterpType"/>
1199           </parameter>
1200           <parameter name="overall_alpha" transfer-ownership="none">
1201             <doc xml:whitespace="preserve">overall alpha for source image (0..255)</doc>
1202             <type name="int" c:type="int"/>
1203           </parameter>
1204           <parameter name="check_x" transfer-ownership="none">
1205             <doc xml:whitespace="preserve">the X offset for the checkboard (origin of checkboard is at -@check_x, -@check_y)</doc>
1206             <type name="int" c:type="int"/>
1207           </parameter>
1208           <parameter name="check_y" transfer-ownership="none">
1209             <doc xml:whitespace="preserve">the Y offset for the checkboard</doc>
1210             <type name="int" c:type="int"/>
1211           </parameter>
1212           <parameter name="check_size" transfer-ownership="none">
1213             <doc xml:whitespace="preserve">the size of checks in the checkboard (must be a power of two)</doc>
1214             <type name="int" c:type="int"/>
1215           </parameter>
1216           <parameter name="color1" transfer-ownership="none">
1217             <doc xml:whitespace="preserve">the color of check at upper left</doc>
1218             <type name="uint32" c:type="guint32"/>
1219           </parameter>
1220           <parameter name="color2" transfer-ownership="none">
1221             <doc xml:whitespace="preserve">the color of the other check</doc>
1222             <type name="uint32" c:type="guint32"/>
1223           </parameter>
1224         </parameters>
1225       </method>
1226       <method name="scale_simple" c:identifier="gdk_pixbuf_scale_simple">
1227         <doc xml:whitespace="preserve">Create a new #GdkPixbuf containing a copy of @src scaled to
1228 should be #GDK_INTERP_NEAREST if you want maximum speed (but when
1229 scaling down #GDK_INTERP_NEAREST is usually unusably ugly).  The
1230 default @interp_type should be #GDK_INTERP_BILINEAR which offers
1231 reasonable quality and speed.
1232 You can scale a sub-portion of @src by creating a sub-pixbuf
1233 pointing into @src; see gdk_pixbuf_new_subpixbuf().
1234 For more complicated scaling/compositing see gdk_pixbuf_scale()
1235 and gdk_pixbuf_composite().
1236 allocated for it.</doc>
1237         <return-value transfer-ownership="full">
1238           <doc xml:whitespace="preserve">the new #GdkPixbuf, or %NULL if not enough memory could be</doc>
1239           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1240         </return-value>
1241         <parameters>
1242           <parameter name="dest_width" transfer-ownership="none">
1243             <doc xml:whitespace="preserve">the width of destination image</doc>
1244             <type name="int" c:type="int"/>
1245           </parameter>
1246           <parameter name="dest_height" transfer-ownership="none">
1247             <doc xml:whitespace="preserve">the height of destination image</doc>
1248             <type name="int" c:type="int"/>
1249           </parameter>
1250           <parameter name="interp_type" transfer-ownership="none">
1251             <doc xml:whitespace="preserve">the interpolation type for the transformation.</doc>
1252             <type name="InterpType" c:type="GdkInterpType"/>
1253           </parameter>
1254         </parameters>
1255       </method>
1256       <method name="composite_color_simple"
1257               c:identifier="gdk_pixbuf_composite_color_simple">
1258         <doc xml:whitespace="preserve">Creates a new #GdkPixbuf by scaling @src to @dest_width x
1259 allocated for it.</doc>
1260         <return-value transfer-ownership="full">
1261           <doc xml:whitespace="preserve">the new #GdkPixbuf, or %NULL if not enough memory could be</doc>
1262           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1263         </return-value>
1264         <parameters>
1265           <parameter name="dest_width" transfer-ownership="none">
1266             <doc xml:whitespace="preserve">the width of destination image</doc>
1267             <type name="int" c:type="int"/>
1268           </parameter>
1269           <parameter name="dest_height" transfer-ownership="none">
1270             <doc xml:whitespace="preserve">the height of destination image</doc>
1271             <type name="int" c:type="int"/>
1272           </parameter>
1273           <parameter name="interp_type" transfer-ownership="none">
1274             <doc xml:whitespace="preserve">the interpolation type for the transformation.</doc>
1275             <type name="InterpType" c:type="GdkInterpType"/>
1276           </parameter>
1277           <parameter name="overall_alpha" transfer-ownership="none">
1278             <doc xml:whitespace="preserve">overall alpha for source image (0..255)</doc>
1279             <type name="int" c:type="int"/>
1280           </parameter>
1281           <parameter name="check_size" transfer-ownership="none">
1282             <doc xml:whitespace="preserve">the size of checks in the checkboard (must be a power of two)</doc>
1283             <type name="int" c:type="int"/>
1284           </parameter>
1285           <parameter name="color1" transfer-ownership="none">
1286             <doc xml:whitespace="preserve">the color of check at upper left</doc>
1287             <type name="uint32" c:type="guint32"/>
1288           </parameter>
1289           <parameter name="color2" transfer-ownership="none">
1290             <doc xml:whitespace="preserve">the color of the other check</doc>
1291             <type name="uint32" c:type="guint32"/>
1292           </parameter>
1293         </parameters>
1294       </method>
1295       <method name="rotate_simple"
1296               c:identifier="gdk_pixbuf_rotate_simple"
1297               version="2.6">
1298         <doc xml:whitespace="preserve">Rotates a pixbuf by a multiple of 90 degrees, and returns the
1299 result in a new pixbuf.
1300 allocated for it.</doc>
1301         <return-value transfer-ownership="full">
1302           <doc xml:whitespace="preserve">the new #GdkPixbuf, or %NULL if not enough memory could be</doc>
1303           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1304         </return-value>
1305         <parameters>
1306           <parameter name="angle" transfer-ownership="none">
1307             <doc xml:whitespace="preserve">the angle to rotate by</doc>
1308             <type name="PixbufRotation" c:type="GdkPixbufRotation"/>
1309           </parameter>
1310         </parameters>
1311       </method>
1312       <method name="flip" c:identifier="gdk_pixbuf_flip" version="2.6">
1313         <doc xml:whitespace="preserve">Flips a pixbuf horizontally or vertically and returns the
1314 result in a new pixbuf.
1315 allocated for it.</doc>
1316         <return-value transfer-ownership="full">
1317           <doc xml:whitespace="preserve">the new #GdkPixbuf, or %NULL if not enough memory could be</doc>
1318           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1319         </return-value>
1320         <parameters>
1321           <parameter name="horizontal" transfer-ownership="none">
1322             <doc xml:whitespace="preserve">%TRUE to flip horizontally, %FALSE to flip vertically</doc>
1323             <type name="boolean" c:type="gboolean"/>
1324           </parameter>
1325         </parameters>
1326       </method>
1327       <method name="set_option"
1328               c:identifier="gdk_pixbuf_set_option"
1329               version="2.2">
1330         <doc xml:whitespace="preserve">Attaches a key/value pair as an option to a #GdkPixbuf. If %key already
1331 exists in the list of options attached to @pixbuf, the new value is 
1332 ignored and %FALSE is returned.</doc>
1333         <return-value transfer-ownership="none">
1334           <doc xml:whitespace="preserve">%TRUE on success.</doc>
1335           <type name="boolean" c:type="gboolean"/>
1336         </return-value>
1337         <parameters>
1338           <parameter name="key" transfer-ownership="none">
1339             <doc xml:whitespace="preserve">a nul-terminated string.</doc>
1340             <type name="utf8" c:type="gchar*"/>
1341           </parameter>
1342           <parameter name="value" transfer-ownership="none">
1343             <doc xml:whitespace="preserve">a nul-terminated string.</doc>
1344             <type name="utf8" c:type="gchar*"/>
1345           </parameter>
1346         </parameters>
1347       </method>
1348       <property name="bits-per-sample"
1349                 writable="1"
1350                 construct-only="1"
1351                 transfer-ownership="none">
1352         <doc xml:whitespace="preserve">The number of bits per sample. 
1353 Currently only 8 bit per sample are supported.</doc>
1354         <type name="int" c:type="gint"/>
1355       </property>
1356       <property name="colorspace"
1357                 writable="1"
1358                 construct-only="1"
1359                 transfer-ownership="none">
1360         <type name="Colorspace" c:type="GdkColorspace"/>
1361       </property>
1362       <property name="has-alpha"
1363                 writable="1"
1364                 construct-only="1"
1365                 transfer-ownership="none">
1366         <type name="boolean" c:type="gboolean"/>
1367       </property>
1368       <property name="height"
1369                 writable="1"
1370                 construct-only="1"
1371                 transfer-ownership="none">
1372         <type name="int" c:type="gint"/>
1373       </property>
1374       <property name="n-channels"
1375                 writable="1"
1376                 construct-only="1"
1377                 transfer-ownership="none">
1378         <doc xml:whitespace="preserve">The number of samples per pixel. 
1379 Currently, only 3 or 4 samples per pixel are supported.</doc>
1380         <type name="int" c:type="gint"/>
1381       </property>
1382       <property name="pixels"
1383                 writable="1"
1384                 construct-only="1"
1385                 transfer-ownership="none">
1386         <type name="any" c:type="gpointer"/>
1387       </property>
1388       <property name="rowstride"
1389                 writable="1"
1390                 construct-only="1"
1391                 transfer-ownership="none">
1392         <doc xml:whitespace="preserve">The number of bytes between the start of a row and 
1393 the start of the next row. This number must (obviously)
1394 be at least as large as the width of the pixbuf.</doc>
1395         <type name="int" c:type="gint"/>
1396       </property>
1397       <property name="width"
1398                 writable="1"
1399                 construct-only="1"
1400                 transfer-ownership="none">
1401         <type name="int" c:type="gint"/>
1402       </property>
1403     </class>
1404     <enumeration name="PixbufAlphaMode"
1405                  glib:type-name="GdkPixbufAlphaMode"
1406                  glib:get-type="gdk_pixbuf_alpha_mode_get_type"
1407                  c:type="GdkPixbufAlphaMode">
1408       <member name="bilevel"
1409               value="0"
1410               c:identifier="GDK_PIXBUF_ALPHA_BILEVEL"
1411               glib:nick="bilevel"/>
1412       <member name="full"
1413               value="1"
1414               c:identifier="GDK_PIXBUF_ALPHA_FULL"
1415               glib:nick="full"/>
1416     </enumeration>
1417     <class name="PixbufAnimation"
1418            c:type="GdkPixbufAnimation"
1419            parent="GObject.Object"
1420            glib:type-name="GdkPixbufAnimation"
1421            glib:get-type="gdk_pixbuf_animation_get_type"
1422            glib:type-struct="PixbufAnimationClass">
1423       <constructor name="new_from_file"
1424                    c:identifier="gdk_pixbuf_animation_new_from_file"
1425                    throws="1">
1426         <doc xml:whitespace="preserve">Creates a new animation by loading it from a file.  The file format is
1427 detected automatically.  If the file's format does not support multi-frame
1428 images, then an animation with a single frame will be created. Possible errors
1429 are in the #GDK_PIXBUF_ERROR and #G_FILE_ERROR domains.
1430 there was no loader for the file's format, there was not enough memory to
1431 allocate the image buffer, or the image file contained invalid data.</doc>
1432         <return-value transfer-ownership="full">
1433           <doc xml:whitespace="preserve">A newly-created animation with a reference count of 1, or %NULL</doc>
1434           <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1435         </return-value>
1436         <parameters>
1437           <parameter name="filename" transfer-ownership="none">
1438             <doc xml:whitespace="preserve">Name of file to load, in the GLib file name encoding</doc>
1439             <type name="utf8" c:type="char*"/>
1440           </parameter>
1441         </parameters>
1442       </constructor>
1443       <virtual-method name="is_static_image" invoker="is_static_image">
1444         <doc xml:whitespace="preserve">If you load a file with gdk_pixbuf_animation_new_from_file() and it turns
1445 out to be a plain, unanimated image, then this function will return
1446 %TRUE. Use gdk_pixbuf_animation_get_static_image() to retrieve
1447 the image.</doc>
1448         <return-value transfer-ownership="none">
1449           <doc xml:whitespace="preserve">%TRUE if the "animation" was really just an image</doc>
1450           <type name="boolean" c:type="gboolean"/>
1451         </return-value>
1452       </virtual-method>
1453       <virtual-method name="get_static_image" invoker="get_static_image">
1454         <doc xml:whitespace="preserve">If an animation is really just a plain image (has only one frame),
1455 this function returns that image. If the animation is an animation,
1456 this function returns a reasonable thing to display as a static
1457 unanimated image, which might be the first frame, or something more
1458 sophisticated. If an animation hasn't loaded any frames yet, this
1459 function will return %NULL.</doc>
1460         <return-value transfer-ownership="full">
1461           <doc xml:whitespace="preserve">unanimated image representing the animation</doc>
1462           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1463         </return-value>
1464       </virtual-method>
1465       <virtual-method name="get_size">
1466         <return-value transfer-ownership="none">
1467           <type name="none" c:type="void"/>
1468         </return-value>
1469         <parameters>
1470           <parameter name="width"
1471                      direction="out"
1472                      caller-allocates="0"
1473                      transfer-ownership="full">
1474             <type name="int" c:type="int*"/>
1475           </parameter>
1476           <parameter name="height"
1477                      direction="out"
1478                      caller-allocates="0"
1479                      transfer-ownership="full">
1480             <type name="int" c:type="int*"/>
1481           </parameter>
1482         </parameters>
1483       </virtual-method>
1484       <virtual-method name="get_iter" invoker="get_iter">
1485         <doc xml:whitespace="preserve">Get an iterator for displaying an animation. The iterator provides
1486 the frames that should be displayed at a given time.
1487 It should be freed after use with g_object_unref().
1488 marks the beginning of animation playback. After creating an
1489 iterator, you should immediately display the pixbuf returned by
1490 gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install a
1491 timeout (with g_timeout_add()) or by some other mechanism ensure
1492 that you'll update the image after
1493 gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
1494 the image is updated, you should reinstall the timeout with the new,
1495 possibly-changed delay time.
1496 As a shortcut, if @start_time is %NULL, the result of
1497 g_get_current_time() will be used automatically.
1498 To update the image (i.e. possibly change the result of
1499 gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
1500 call gdk_pixbuf_animation_iter_advance().
1501 If you're using #GdkPixbufLoader, in addition to updating the image
1502 after the delay time, you should also update it whenever you
1503 receive the area_updated signal and
1504 gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
1505 %TRUE. In this case, the frame currently being fed into the loader
1506 has received new data, so needs to be refreshed. The delay time for
1507 a frame may also be modified after an area_updated signal, for
1508 example if the delay time for a frame is encoded in the data after
1509 the frame itself. So your timeout should be reinstalled after any
1510 area_updated signal.
1511 A delay time of -1 is possible, indicating "infinite."</doc>
1512         <return-value transfer-ownership="full">
1513           <doc xml:whitespace="preserve">an iterator to move over the animation</doc>
1514           <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
1515         </return-value>
1516         <parameters>
1517           <parameter name="start_time" transfer-ownership="none">
1518             <doc xml:whitespace="preserve">time when the animation starts playing</doc>
1519             <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1520           </parameter>
1521         </parameters>
1522       </virtual-method>
1523       <method name="ref"
1524               c:identifier="gdk_pixbuf_animation_ref"
1525               deprecated="Use g_object_ref()."
1526               deprecated-version="2.0">
1527         <doc xml:whitespace="preserve">Adds a reference to an animation.</doc>
1528         <return-value transfer-ownership="full">
1529           <doc xml:whitespace="preserve">The same as the @animation argument.</doc>
1530           <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1531         </return-value>
1532       </method>
1533       <method name="unref"
1534               c:identifier="gdk_pixbuf_animation_unref"
1535               deprecated="Use g_object_unref()."
1536               deprecated-version="2.0">
1537         <doc xml:whitespace="preserve">Removes a reference from an animation.</doc>
1538         <return-value transfer-ownership="none">
1539           <type name="none" c:type="void"/>
1540         </return-value>
1541       </method>
1542       <method name="get_width" c:identifier="gdk_pixbuf_animation_get_width">
1543         <doc xml:whitespace="preserve">Queries the width of the bounding box of a pixbuf animation.</doc>
1544         <return-value transfer-ownership="none">
1545           <doc xml:whitespace="preserve">Width of the bounding box of the animation.</doc>
1546           <type name="int" c:type="int"/>
1547         </return-value>
1548       </method>
1549       <method name="get_height" c:identifier="gdk_pixbuf_animation_get_height">
1550         <doc xml:whitespace="preserve">Queries the height of the bounding box of a pixbuf animation.</doc>
1551         <return-value transfer-ownership="none">
1552           <doc xml:whitespace="preserve">Height of the bounding box of the animation.</doc>
1553           <type name="int" c:type="int"/>
1554         </return-value>
1555       </method>
1556       <method name="is_static_image"
1557               c:identifier="gdk_pixbuf_animation_is_static_image">
1558         <doc xml:whitespace="preserve">If you load a file with gdk_pixbuf_animation_new_from_file() and it turns
1559 out to be a plain, unanimated image, then this function will return
1560 %TRUE. Use gdk_pixbuf_animation_get_static_image() to retrieve
1561 the image.</doc>
1562         <return-value transfer-ownership="none">
1563           <doc xml:whitespace="preserve">%TRUE if the "animation" was really just an image</doc>
1564           <type name="boolean" c:type="gboolean"/>
1565         </return-value>
1566       </method>
1567       <method name="get_static_image"
1568               c:identifier="gdk_pixbuf_animation_get_static_image">
1569         <doc xml:whitespace="preserve">If an animation is really just a plain image (has only one frame),
1570 this function returns that image. If the animation is an animation,
1571 this function returns a reasonable thing to display as a static
1572 unanimated image, which might be the first frame, or something more
1573 sophisticated. If an animation hasn't loaded any frames yet, this
1574 function will return %NULL.</doc>
1575         <return-value transfer-ownership="full">
1576           <doc xml:whitespace="preserve">unanimated image representing the animation</doc>
1577           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1578         </return-value>
1579       </method>
1580       <method name="get_iter" c:identifier="gdk_pixbuf_animation_get_iter">
1581         <doc xml:whitespace="preserve">Get an iterator for displaying an animation. The iterator provides
1582 the frames that should be displayed at a given time.
1583 It should be freed after use with g_object_unref().
1584 marks the beginning of animation playback. After creating an
1585 iterator, you should immediately display the pixbuf returned by
1586 gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install a
1587 timeout (with g_timeout_add()) or by some other mechanism ensure
1588 that you'll update the image after
1589 gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time
1590 the image is updated, you should reinstall the timeout with the new,
1591 possibly-changed delay time.
1592 As a shortcut, if @start_time is %NULL, the result of
1593 g_get_current_time() will be used automatically.
1594 To update the image (i.e. possibly change the result of
1595 gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation),
1596 call gdk_pixbuf_animation_iter_advance().
1597 If you're using #GdkPixbufLoader, in addition to updating the image
1598 after the delay time, you should also update it whenever you
1599 receive the area_updated signal and
1600 gdk_pixbuf_animation_iter_on_currently_loading_frame() returns
1601 %TRUE. In this case, the frame currently being fed into the loader
1602 has received new data, so needs to be refreshed. The delay time for
1603 a frame may also be modified after an area_updated signal, for
1604 example if the delay time for a frame is encoded in the data after
1605 the frame itself. So your timeout should be reinstalled after any
1606 area_updated signal.
1607 A delay time of -1 is possible, indicating "infinite."</doc>
1608         <return-value transfer-ownership="full">
1609           <doc xml:whitespace="preserve">an iterator to move over the animation</doc>
1610           <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
1611         </return-value>
1612         <parameters>
1613           <parameter name="start_time" transfer-ownership="none">
1614             <doc xml:whitespace="preserve">time when the animation starts playing</doc>
1615             <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1616           </parameter>
1617         </parameters>
1618       </method>
1619       <field name="parent_instance">
1620         <type name="GObject.Object" c:type="GObject"/>
1621       </field>
1622     </class>
1623     <record name="PixbufAnimationClass"
1624             c:type="GdkPixbufAnimationClass"
1625             glib:is-gtype-struct-for="PixbufAnimation">
1626       <field name="parent_class">
1627         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1628       </field>
1629       <field name="is_static_image">
1630         <callback name="is_static_image" c:type="is_static_image">
1631           <return-value transfer-ownership="none">
1632             <doc xml:whitespace="preserve">%TRUE if the "animation" was really just an image</doc>
1633             <type name="boolean" c:type="gboolean"/>
1634           </return-value>
1635           <parameters>
1636             <parameter name="anim" transfer-ownership="none">
1637               <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1638             </parameter>
1639           </parameters>
1640         </callback>
1641       </field>
1642       <field name="get_static_image">
1643         <callback name="get_static_image" c:type="get_static_image">
1644           <return-value transfer-ownership="full">
1645             <doc xml:whitespace="preserve">unanimated image representing the animation</doc>
1646             <type name="Pixbuf" c:type="GdkPixbuf*"/>
1647           </return-value>
1648           <parameters>
1649             <parameter name="anim" transfer-ownership="none">
1650               <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1651             </parameter>
1652           </parameters>
1653         </callback>
1654       </field>
1655       <field name="get_size">
1656         <callback name="get_size" c:type="get_size">
1657           <return-value transfer-ownership="none">
1658             <type name="none" c:type="void"/>
1659           </return-value>
1660           <parameters>
1661             <parameter name="anim" transfer-ownership="none">
1662               <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1663             </parameter>
1664             <parameter name="width"
1665                        direction="out"
1666                        caller-allocates="0"
1667                        transfer-ownership="full">
1668               <type name="int" c:type="int*"/>
1669             </parameter>
1670             <parameter name="height"
1671                        direction="out"
1672                        caller-allocates="0"
1673                        transfer-ownership="full">
1674               <type name="int" c:type="int*"/>
1675             </parameter>
1676           </parameters>
1677         </callback>
1678       </field>
1679       <field name="get_iter">
1680         <callback name="get_iter" c:type="get_iter">
1681           <return-value transfer-ownership="full">
1682             <doc xml:whitespace="preserve">an iterator to move over the animation</doc>
1683             <type name="PixbufAnimationIter" c:type="GdkPixbufAnimationIter*"/>
1684           </return-value>
1685           <parameters>
1686             <parameter name="anim" transfer-ownership="none">
1687               <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
1688             </parameter>
1689             <parameter name="start_time" transfer-ownership="none">
1690               <doc xml:whitespace="preserve">time when the animation starts playing</doc>
1691               <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1692             </parameter>
1693           </parameters>
1694         </callback>
1695       </field>
1696     </record>
1697     <class name="PixbufAnimationIter"
1698            c:type="GdkPixbufAnimationIter"
1699            parent="GObject.Object"
1700            glib:type-name="GdkPixbufAnimationIter"
1701            glib:get-type="gdk_pixbuf_animation_iter_get_type"
1702            glib:type-struct="PixbufAnimationIterClass">
1703       <virtual-method name="get_delay_time" invoker="get_delay_time">
1704         <doc xml:whitespace="preserve">Gets the number of milliseconds the current pixbuf should be displayed,
1705 or -1 if the current pixbuf should be displayed forever. g_timeout_add()
1706 conveniently takes a timeout in milliseconds, so you can use a timeout
1707 to schedule the next update.</doc>
1708         <return-value transfer-ownership="none">
1709           <doc xml:whitespace="preserve">delay time in milliseconds (thousandths of a second)</doc>
1710           <type name="int" c:type="int"/>
1711         </return-value>
1712       </virtual-method>
1713       <virtual-method name="get_pixbuf" invoker="get_pixbuf">
1714         <doc xml:whitespace="preserve">Gets the current pixbuf which should be displayed; the pixbuf will
1715 be the same size as the animation itself
1716 (gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()). 
1717 This pixbuf should be displayed for 
1718 gdk_pixbuf_animation_iter_get_delay_time() milliseconds.  The caller
1719 of this function does not own a reference to the returned pixbuf;
1720 the returned pixbuf will become invalid when the iterator advances
1721 to the next frame, which may happen anytime you call
1722 gdk_pixbuf_animation_iter_advance(). Copy the pixbuf to keep it
1723 (don't just add a reference), as it may get recycled as you advance
1724 the iterator.</doc>
1725         <return-value transfer-ownership="full">
1726           <doc xml:whitespace="preserve">the pixbuf to be displayed</doc>
1727           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1728         </return-value>
1729       </virtual-method>
1730       <virtual-method name="on_currently_loading_frame"
1731                       invoker="on_currently_loading_frame">
1732         <doc xml:whitespace="preserve">Used to determine how to respond to the area_updated signal on
1733 #GdkPixbufLoader when loading an animation. area_updated is emitted
1734 for an area of the frame currently streaming in to the loader. So if
1735 you're on the currently loading frame, you need to redraw the screen for
1736 the updated area.</doc>
1737         <return-value transfer-ownership="none">
1738           <doc xml:whitespace="preserve">%TRUE if the frame we're on is partially loaded, or the last frame</doc>
1739           <type name="boolean" c:type="gboolean"/>
1740         </return-value>
1741       </virtual-method>
1742       <virtual-method name="advance" invoker="advance">
1743         <doc xml:whitespace="preserve">Possibly advances an animation to a new frame. Chooses the frame based
1744 on the start time passed to gdk_pixbuf_animation_get_iter().
1745 must be greater than or equal to the time passed to
1746 gdk_pixbuf_animation_get_iter(), and must increase or remain
1747 unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
1748 called. That is, you can't go backward in time; animations only
1749 play forward.
1750 As a shortcut, pass %NULL for the current time and g_get_current_time()
1751 will be invoked on your behalf. So you only need to explicitly pass
1752 at double speed.
1753 If this function returns %FALSE, there's no need to update the animation
1754 display, assuming the display had been rendered prior to advancing;
1755 if %TRUE, you need to call gdk_animation_iter_get_pixbuf() and update the
1756 display with the new pixbuf.</doc>
1757         <return-value transfer-ownership="none">
1758           <doc xml:whitespace="preserve">%TRUE if the image may need updating</doc>
1759           <type name="boolean" c:type="gboolean"/>
1760         </return-value>
1761         <parameters>
1762           <parameter name="current_time" transfer-ownership="none">
1763             <doc xml:whitespace="preserve">current time</doc>
1764             <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1765           </parameter>
1766         </parameters>
1767       </virtual-method>
1768       <method name="get_delay_time"
1769               c:identifier="gdk_pixbuf_animation_iter_get_delay_time">
1770         <doc xml:whitespace="preserve">Gets the number of milliseconds the current pixbuf should be displayed,
1771 or -1 if the current pixbuf should be displayed forever. g_timeout_add()
1772 conveniently takes a timeout in milliseconds, so you can use a timeout
1773 to schedule the next update.</doc>
1774         <return-value transfer-ownership="none">
1775           <doc xml:whitespace="preserve">delay time in milliseconds (thousandths of a second)</doc>
1776           <type name="int" c:type="int"/>
1777         </return-value>
1778       </method>
1779       <method name="get_pixbuf"
1780               c:identifier="gdk_pixbuf_animation_iter_get_pixbuf">
1781         <doc xml:whitespace="preserve">Gets the current pixbuf which should be displayed; the pixbuf will
1782 be the same size as the animation itself
1783 (gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()). 
1784 This pixbuf should be displayed for 
1785 gdk_pixbuf_animation_iter_get_delay_time() milliseconds.  The caller
1786 of this function does not own a reference to the returned pixbuf;
1787 the returned pixbuf will become invalid when the iterator advances
1788 to the next frame, which may happen anytime you call
1789 gdk_pixbuf_animation_iter_advance(). Copy the pixbuf to keep it
1790 (don't just add a reference), as it may get recycled as you advance
1791 the iterator.</doc>
1792         <return-value transfer-ownership="full">
1793           <doc xml:whitespace="preserve">the pixbuf to be displayed</doc>
1794           <type name="Pixbuf" c:type="GdkPixbuf*"/>
1795         </return-value>
1796       </method>
1797       <method name="on_currently_loading_frame"
1798               c:identifier="gdk_pixbuf_animation_iter_on_currently_loading_frame">
1799         <doc xml:whitespace="preserve">Used to determine how to respond to the area_updated signal on
1800 #GdkPixbufLoader when loading an animation. area_updated is emitted
1801 for an area of the frame currently streaming in to the loader. So if
1802 you're on the currently loading frame, you need to redraw the screen for
1803 the updated area.</doc>
1804         <return-value transfer-ownership="none">
1805           <doc xml:whitespace="preserve">%TRUE if the frame we're on is partially loaded, or the last frame</doc>
1806           <type name="boolean" c:type="gboolean"/>
1807         </return-value>
1808       </method>
1809       <method name="advance" c:identifier="gdk_pixbuf_animation_iter_advance">
1810         <doc xml:whitespace="preserve">Possibly advances an animation to a new frame. Chooses the frame based
1811 on the start time passed to gdk_pixbuf_animation_get_iter().
1812 must be greater than or equal to the time passed to
1813 gdk_pixbuf_animation_get_iter(), and must increase or remain
1814 unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() is
1815 called. That is, you can't go backward in time; animations only
1816 play forward.
1817 As a shortcut, pass %NULL for the current time and g_get_current_time()
1818 will be invoked on your behalf. So you only need to explicitly pass
1819 at double speed.
1820 If this function returns %FALSE, there's no need to update the animation
1821 display, assuming the display had been rendered prior to advancing;
1822 if %TRUE, you need to call gdk_animation_iter_get_pixbuf() and update the
1823 display with the new pixbuf.</doc>
1824         <return-value transfer-ownership="none">
1825           <doc xml:whitespace="preserve">%TRUE if the image may need updating</doc>
1826           <type name="boolean" c:type="gboolean"/>
1827         </return-value>
1828         <parameters>
1829           <parameter name="current_time" transfer-ownership="none">
1830             <doc xml:whitespace="preserve">current time</doc>
1831             <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1832           </parameter>
1833         </parameters>
1834       </method>
1835       <field name="parent_instance">
1836         <type name="GObject.Object" c:type="GObject"/>
1837       </field>
1838     </class>
1839     <record name="PixbufAnimationIterClass"
1840             c:type="GdkPixbufAnimationIterClass"
1841             glib:is-gtype-struct-for="PixbufAnimationIter">
1842       <field name="parent_class">
1843         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
1844       </field>
1845       <field name="get_delay_time">
1846         <callback name="get_delay_time" c:type="get_delay_time">
1847           <return-value transfer-ownership="none">
1848             <doc xml:whitespace="preserve">delay time in milliseconds (thousandths of a second)</doc>
1849             <type name="int" c:type="int"/>
1850           </return-value>
1851           <parameters>
1852             <parameter name="iter" transfer-ownership="none">
1853               <type name="PixbufAnimationIter"
1854                     c:type="GdkPixbufAnimationIter*"/>
1855             </parameter>
1856           </parameters>
1857         </callback>
1858       </field>
1859       <field name="get_pixbuf">
1860         <callback name="get_pixbuf" c:type="get_pixbuf">
1861           <return-value transfer-ownership="full">
1862             <doc xml:whitespace="preserve">the pixbuf to be displayed</doc>
1863             <type name="Pixbuf" c:type="GdkPixbuf*"/>
1864           </return-value>
1865           <parameters>
1866             <parameter name="iter" transfer-ownership="none">
1867               <type name="PixbufAnimationIter"
1868                     c:type="GdkPixbufAnimationIter*"/>
1869             </parameter>
1870           </parameters>
1871         </callback>
1872       </field>
1873       <field name="on_currently_loading_frame">
1874         <callback name="on_currently_loading_frame"
1875                   c:type="on_currently_loading_frame">
1876           <return-value transfer-ownership="none">
1877             <doc xml:whitespace="preserve">%TRUE if the frame we're on is partially loaded, or the last frame</doc>
1878             <type name="boolean" c:type="gboolean"/>
1879           </return-value>
1880           <parameters>
1881             <parameter name="iter" transfer-ownership="none">
1882               <type name="PixbufAnimationIter"
1883                     c:type="GdkPixbufAnimationIter*"/>
1884             </parameter>
1885           </parameters>
1886         </callback>
1887       </field>
1888       <field name="advance">
1889         <callback name="advance" c:type="advance">
1890           <return-value transfer-ownership="none">
1891             <doc xml:whitespace="preserve">%TRUE if the image may need updating</doc>
1892             <type name="boolean" c:type="gboolean"/>
1893           </return-value>
1894           <parameters>
1895             <parameter name="iter" transfer-ownership="none">
1896               <type name="PixbufAnimationIter"
1897                     c:type="GdkPixbufAnimationIter*"/>
1898             </parameter>
1899             <parameter name="current_time" transfer-ownership="none">
1900               <doc xml:whitespace="preserve">current time</doc>
1901               <type name="GLib.TimeVal" c:type="GTimeVal*"/>
1902             </parameter>
1903           </parameters>
1904         </callback>
1905       </field>
1906     </record>
1907     <callback name="PixbufDestroyNotify" c:type="GdkPixbufDestroyNotify">
1908       <return-value transfer-ownership="none">
1909         <type name="none" c:type="void"/>
1910       </return-value>
1911       <parameters>
1912         <parameter name="pixels" transfer-ownership="none">
1913           <array c:type="guchar*">
1914             <type name="uint8"/>
1915           </array>
1916         </parameter>
1917         <parameter name="data" transfer-ownership="none">
1918           <type name="any" c:type="gpointer"/>
1919         </parameter>
1920       </parameters>
1921     </callback>
1922     <enumeration name="PixbufError"
1923                  glib:type-name="GdkPixbufError"
1924                  glib:get-type="gdk_pixbuf_error_get_type"
1925                  c:type="GdkPixbufError"
1926                  glib:error-quark="gdk_pixbuf_error_quark">
1927       <member name="corrupt_image"
1928               value="0"
1929               c:identifier="GDK_PIXBUF_ERROR_CORRUPT_IMAGE"
1930               glib:nick="corrupt-image"/>
1931       <member name="insufficient_memory"
1932               value="1"
1933               c:identifier="GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY"
1934               glib:nick="insufficient-memory"/>
1935       <member name="bad_option"
1936               value="2"
1937               c:identifier="GDK_PIXBUF_ERROR_BAD_OPTION"
1938               glib:nick="bad-option"/>
1939       <member name="unknown_type"
1940               value="3"
1941               c:identifier="GDK_PIXBUF_ERROR_UNKNOWN_TYPE"
1942               glib:nick="unknown-type"/>
1943       <member name="unsupported_operation"
1944               value="4"
1945               c:identifier="GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION"
1946               glib:nick="unsupported-operation"/>
1947       <member name="failed"
1948               value="5"
1949               c:identifier="GDK_PIXBUF_ERROR_FAILED"
1950               glib:nick="failed"/>
1951     </enumeration>
1952     <record name="PixbufFormat" c:type="GdkPixbufFormat">
1953       <field name="name" writable="1">
1954         <type name="utf8" c:type="gchar*"/>
1955       </field>
1956       <field name="signature" writable="1">
1957         <type name="PixbufModulePattern" c:type="GdkPixbufModulePattern*"/>
1958       </field>
1959       <field name="domain" writable="1">
1960         <type name="utf8" c:type="gchar*"/>
1961       </field>
1962       <field name="description" writable="1">
1963         <type name="utf8" c:type="gchar*"/>
1964       </field>
1965       <field name="mime_types" writable="1">
1966         <type name="utf8" c:type="gchar**"/>
1967       </field>
1968       <field name="extensions" writable="1">
1969         <type name="utf8" c:type="gchar**"/>
1970       </field>
1971       <field name="flags" writable="1">
1972         <type name="uint32" c:type="guint32"/>
1973       </field>
1974       <field name="disabled" writable="1">
1975         <type name="boolean" c:type="gboolean"/>
1976       </field>
1977       <field name="license" writable="1">
1978         <type name="utf8" c:type="gchar*"/>
1979       </field>
1980       <method name="get_name"
1981               c:identifier="gdk_pixbuf_format_get_name"
1982               version="2.2">
1983         <doc xml:whitespace="preserve">Returns the name of the format.</doc>
1984         <return-value transfer-ownership="full">
1985           <doc xml:whitespace="preserve">the name of the format.</doc>
1986           <type name="utf8" c:type="gchar*"/>
1987         </return-value>
1988       </method>
1989       <method name="get_description"
1990               c:identifier="gdk_pixbuf_format_get_description"
1991               version="2.2">
1992         <doc xml:whitespace="preserve">Returns a description of the format.</doc>
1993         <return-value transfer-ownership="full">
1994           <doc xml:whitespace="preserve">a description of the format.</doc>
1995           <type name="utf8" c:type="gchar*"/>
1996         </return-value>
1997       </method>
1998       <method name="get_mime_types"
1999               c:identifier="gdk_pixbuf_format_get_mime_types"
2000               version="2.2">
2001         <doc xml:whitespace="preserve">Returns the mime types supported by the format.
2002 g_strfreev() when it is no longer needed.</doc>
2003         <return-value transfer-ownership="full">
2004           <doc xml:whitespace="preserve">a %NULL-terminated array of mime types which must be freed with</doc>
2005           <array c:type="gchar**">
2006             <type name="utf8"/>
2007           </array>
2008         </return-value>
2009       </method>
2010       <method name="get_extensions"
2011               c:identifier="gdk_pixbuf_format_get_extensions"
2012               version="2.2">
2013         <doc xml:whitespace="preserve">Returns the filename extensions typically used for files in the 
2014 given format.
2015 freed with g_strfreev() when it is no longer needed.</doc>
2016         <return-value transfer-ownership="full">
2017           <doc xml:whitespace="preserve">a %NULL-terminated array of filename extensions which must be</doc>
2018           <array c:type="gchar**">
2019             <type name="utf8"/>
2020           </array>
2021         </return-value>
2022       </method>
2023       <method name="is_writable"
2024               c:identifier="gdk_pixbuf_format_is_writable"
2025               version="2.2">
2026         <doc xml:whitespace="preserve">Returns whether pixbufs can be saved in the given format.</doc>
2027         <return-value transfer-ownership="none">
2028           <doc xml:whitespace="preserve">whether pixbufs can be saved in the given format.</doc>
2029           <type name="boolean" c:type="gboolean"/>
2030         </return-value>
2031       </method>
2032       <method name="is_scalable"
2033               c:identifier="gdk_pixbuf_format_is_scalable"
2034               version="2.6">
2035         <doc xml:whitespace="preserve">Returns whether this image format is scalable. If a file is in a 
2036 scalable format, it is preferable to load it at the desired size, 
2037 rather than loading it at the default size and scaling the 
2038 resulting pixbuf to the desired size.</doc>
2039         <return-value transfer-ownership="none">
2040           <doc xml:whitespace="preserve">whether this image format is scalable.</doc>
2041           <type name="boolean" c:type="gboolean"/>
2042         </return-value>
2043       </method>
2044       <method name="is_disabled"
2045               c:identifier="gdk_pixbuf_format_is_disabled"
2046               version="2.6">
2047         <doc xml:whitespace="preserve">Returns whether this image format is disabled. See
2048 gdk_pixbuf_format_set_disabled().</doc>
2049         <return-value transfer-ownership="none">
2050           <doc xml:whitespace="preserve">whether this image format is disabled.</doc>
2051           <type name="boolean" c:type="gboolean"/>
2052         </return-value>
2053       </method>
2054       <method name="set_disabled"
2055               c:identifier="gdk_pixbuf_format_set_disabled"
2056               version="2.6">
2057         <doc xml:whitespace="preserve">Disables or enables an image format. If a format is disabled, 
2058 gdk-pixbuf won't use the image loader for this format to load 
2059 images. Applications can use this to avoid using image loaders 
2060 with an inappropriate license, see gdk_pixbuf_format_get_license().</doc>
2061         <return-value transfer-ownership="none">
2062           <type name="none" c:type="void"/>
2063         </return-value>
2064         <parameters>
2065           <parameter name="disabled" transfer-ownership="none">
2066             <doc xml:whitespace="preserve">%TRUE to disable the format @format</doc>
2067             <type name="boolean" c:type="gboolean"/>
2068           </parameter>
2069         </parameters>
2070       </method>
2071       <method name="get_license"
2072               c:identifier="gdk_pixbuf_format_get_license"
2073               version="2.6">
2074         <doc xml:whitespace="preserve">Returns information about the license of the image loader for the format. The
2075 returned string should be a shorthand for a wellknown license, e.g. "LGPL",
2076 "GPL", "QPL", "GPL/QPL", or "other" to indicate some other license.  This
2077 string should be freed with g_free() when it's no longer needed.</doc>
2078         <return-value transfer-ownership="full">
2079           <doc xml:whitespace="preserve">a string describing the license of @format.</doc>
2080           <type name="utf8" c:type="gchar*"/>
2081         </return-value>
2082       </method>
2083     </record>
2084     <bitfield name="PixbufFormatFlags" c:type="GdkPixbufFormatFlags">
2085       <member name="writable"
2086               value="1"
2087               c:identifier="GDK_PIXBUF_FORMAT_WRITABLE"/>
2088       <member name="scalable"
2089               value="2"
2090               c:identifier="GDK_PIXBUF_FORMAT_SCALABLE"/>
2091       <member name="threadsafe"
2092               value="4"
2093               c:identifier="GDK_PIXBUF_FORMAT_THREADSAFE"/>
2094     </bitfield>
2095     <class name="PixbufLoader"
2096            c:type="GdkPixbufLoader"
2097            parent="GObject.Object"
2098            glib:type-name="GdkPixbufLoader"
2099            glib:get-type="gdk_pixbuf_loader_get_type"
2100            glib:type-struct="PixbufLoaderClass">
2101       <constructor name="new" c:identifier="gdk_pixbuf_loader_new">
2102         <doc xml:whitespace="preserve">Creates a new pixbuf loader object.</doc>
2103         <return-value transfer-ownership="full">
2104           <doc xml:whitespace="preserve">A newly-created pixbuf loader.</doc>
2105           <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2106         </return-value>
2107       </constructor>
2108       <constructor name="new_with_type"
2109                    c:identifier="gdk_pixbuf_loader_new_with_type"
2110                    throws="1">
2111         <doc xml:whitespace="preserve">Creates a new pixbuf loader object that always attempts to parse
2112 image data as if it were an image of type @image_type, instead of
2113 identifying the type automatically. Useful if you want an error if
2114 the image isn't the expected type, for loading image formats
2115 that can't be reliably identified by looking at the data, or if
2116 the user manually forces a specific type.
2117 The list of supported image formats depends on what image loaders
2118 are installed, but typically "png", "jpeg", "gif", "tiff" and 
2119 "xpm" are among the supported formats. To obtain the full list of
2120 supported image formats, call gdk_pixbuf_format_get_name() on each 
2121 of the #GdkPixbufFormat structs returned by gdk_pixbuf_get_formats().</doc>
2122         <return-value transfer-ownership="full">
2123           <doc xml:whitespace="preserve">A newly-created pixbuf loader.</doc>
2124           <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2125         </return-value>
2126         <parameters>
2127           <parameter name="image_type" transfer-ownership="none">
2128             <doc xml:whitespace="preserve">name of the image format to be loaded with the image</doc>
2129             <type name="utf8" c:type="char*"/>
2130           </parameter>
2131         </parameters>
2132       </constructor>
2133       <constructor name="new_with_mime_type"
2134                    c:identifier="gdk_pixbuf_loader_new_with_mime_type"
2135                    version="2.4"
2136                    throws="1">
2137         <doc xml:whitespace="preserve">Creates a new pixbuf loader object that always attempts to parse
2138 image data as if it were an image of mime type @mime_type, instead of
2139 identifying the type automatically. Useful if you want an error if
2140 the image isn't the expected mime type, for loading image formats
2141 that can't be reliably identified by looking at the data, or if
2142 the user manually forces a specific mime type.
2143 The list of supported mime types depends on what image loaders
2144 are installed, but typically "image/png", "image/jpeg", "image/gif", 
2145 "image/tiff" and "image/x-xpixmap" are among the supported mime types. 
2146 To obtain the full list of supported mime types, call 
2147 gdk_pixbuf_format_get_mime_types() on each of the #GdkPixbufFormat 
2148 structs returned by gdk_pixbuf_get_formats().</doc>
2149         <return-value transfer-ownership="full">
2150           <doc xml:whitespace="preserve">A newly-created pixbuf loader.</doc>
2151           <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2152         </return-value>
2153         <parameters>
2154           <parameter name="mime_type" transfer-ownership="none">
2155             <doc xml:whitespace="preserve">the mime type to be loaded</doc>
2156             <type name="utf8" c:type="char*"/>
2157           </parameter>
2158         </parameters>
2159       </constructor>
2160       <method name="set_size"
2161               c:identifier="gdk_pixbuf_loader_set_size"
2162               version="2.2">
2163         <doc xml:whitespace="preserve">Causes the image to be scaled while it is loaded. The desired
2164 image size can be determined relative to the original size of
2165 the image by calling gdk_pixbuf_loader_set_size() from a
2166 signal handler for the ::size-prepared signal.
2167 Attempts to set the desired image size  are ignored after the 
2168 emission of the ::size-prepared signal.</doc>
2169         <return-value transfer-ownership="none">
2170           <type name="none" c:type="void"/>
2171         </return-value>
2172         <parameters>
2173           <parameter name="width" transfer-ownership="none">
2174             <doc xml:whitespace="preserve">The desired width of the image being loaded.</doc>
2175             <type name="int" c:type="int"/>
2176           </parameter>
2177           <parameter name="height" transfer-ownership="none">
2178             <doc xml:whitespace="preserve">The desired height of the image being loaded.</doc>
2179             <type name="int" c:type="int"/>
2180           </parameter>
2181         </parameters>
2182       </method>
2183       <method name="write" c:identifier="gdk_pixbuf_loader_write" throws="1">
2184         <doc xml:whitespace="preserve">This will cause a pixbuf loader to parse the next @count bytes of
2185 an image.  It will return %TRUE if the data was loaded successfully,
2186 and %FALSE if an error occurred.  In the latter case, the loader
2187 will be closed, and will not accept further writes. If %FALSE is
2188 returned, @error will be set to an error from the #GDK_PIXBUF_ERROR
2189 or #G_FILE_ERROR domains.
2190 cannot parse the buffer.</doc>
2191         <return-value transfer-ownership="none">
2192           <doc xml:whitespace="preserve">%TRUE if the write was successful, or %FALSE if the loader</doc>
2193           <type name="boolean" c:type="gboolean"/>
2194         </return-value>
2195         <parameters>
2196           <parameter name="buf" transfer-ownership="none">
2197             <doc xml:whitespace="preserve">Pointer to image data.</doc>
2198             <array c:type="guchar*">
2199               <type name="uint8"/>
2200             </array>
2201           </parameter>
2202           <parameter name="count" transfer-ownership="none">
2203             <doc xml:whitespace="preserve">Length of the @buf buffer in bytes.</doc>
2204             <type name="gsize" c:type="gsize"/>
2205           </parameter>
2206         </parameters>
2207       </method>
2208       <method name="get_pixbuf" c:identifier="gdk_pixbuf_loader_get_pixbuf">
2209         <doc xml:whitespace="preserve">Queries the #GdkPixbuf that a pixbuf loader is currently creating.
2210 In general it only makes sense to call this function after the
2211 "area-prepared" signal has been emitted by the loader; this means
2212 that enough data has been read to know the size of the image that
2213 will be allocated.  If the loader has not received enough data via
2214 gdk_pixbuf_loader_write(), then this function returns %NULL.  The
2215 returned pixbuf will be the same in all future calls to the loader,
2216 so simply calling g_object_ref() should be sufficient to continue
2217 using it.  Additionally, if the loader is an animation, it will
2218 return the "static image" of the animation
2219 (see gdk_pixbuf_animation_get_static_image()).
2220 enough data has been read to determine how to create the image buffer.</doc>
2221         <return-value transfer-ownership="full">
2222           <doc xml:whitespace="preserve">The #GdkPixbuf that the loader is creating, or %NULL if not</doc>
2223           <type name="Pixbuf" c:type="GdkPixbuf*"/>
2224         </return-value>
2225       </method>
2226       <method name="get_animation"
2227               c:identifier="gdk_pixbuf_loader_get_animation">
2228         <doc xml:whitespace="preserve">Queries the #GdkPixbufAnimation that a pixbuf loader is currently creating.
2229 In general it only makes sense to call this function after the "area-prepared"
2230 signal has been emitted by the loader. If the loader doesn't have enough
2231 bytes yet (hasn't emitted the "area-prepared" signal) this function will 
2232 return %NULL.</doc>
2233         <return-value transfer-ownership="full">
2234           <doc xml:whitespace="preserve">The #GdkPixbufAnimation that the loader is loading, or %NULL if</doc>
2235           <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
2236         </return-value>
2237       </method>
2238       <method name="close" c:identifier="gdk_pixbuf_loader_close" throws="1">
2239         <doc xml:whitespace="preserve">Informs a pixbuf loader that no further writes with
2240 gdk_pixbuf_loader_write() will occur, so that it can free its
2241 internal loading structures. Also, tries to parse any data that
2242 hasn't yet been parsed; if the remaining data is partial or
2243 corrupt, an error will be returned.  If %FALSE is returned, @error
2244 will be set to an error from the #GDK_PIXBUF_ERROR or #G_FILE_ERROR
2245 domains. If you're just cancelling a load rather than expecting it
2246 to be finished, passing %NULL for @error to ignore it is
2247 reasonable.</doc>
2248         <return-value transfer-ownership="none">
2249           <doc xml:whitespace="preserve">%TRUE if all image data written so far was successfully</doc>
2250           <type name="boolean" c:type="gboolean"/>
2251         </return-value>
2252       </method>
2253       <method name="get_format"
2254               c:identifier="gdk_pixbuf_loader_get_format"
2255               version="2.2">
2256         <doc xml:whitespace="preserve">Obtains the available information about the format of the 
2257 currently loading image file.
2258 by GdkPixbuf and should not be freed.</doc>
2259         <return-value transfer-ownership="full">
2260           <doc xml:whitespace="preserve">A #GdkPixbufFormat or %NULL. The return value is owned</doc>
2261           <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
2262         </return-value>
2263       </method>
2264       <field name="parent_instance">
2265         <type name="GObject.Object" c:type="GObject"/>
2266       </field>
2267       <field name="priv">
2268         <type name="any" c:type="gpointer"/>
2269       </field>
2270       <glib:signal name="area-prepared">
2271         <doc xml:whitespace="preserve">This signal is emitted when the pixbuf loader has allocated the 
2272 pixbuf in the desired size.  After this signal is emitted, 
2273 applications can call gdk_pixbuf_loader_get_pixbuf() to fetch 
2274 the partially-loaded pixbuf.</doc>
2275         <return-value transfer-ownership="full">
2276           <type name="none" c:type="void"/>
2277         </return-value>
2278       </glib:signal>
2279       <glib:signal name="area-updated">
2280         <doc xml:whitespace="preserve">This signal is emitted when a significant area of the image being
2281 loaded has been updated.  Normally it means that a complete
2282 scanline has been read in, but it could be a different area as
2283 well.  Applications can use this signal to know when to repaint
2284 areas of an image that is being loaded.</doc>
2285         <return-value transfer-ownership="full">
2286           <type name="none" c:type="void"/>
2287         </return-value>
2288         <parameters>
2289           <parameter name="x" transfer-ownership="none">
2290             <doc xml:whitespace="preserve">X offset of upper-left corner of the updated area.</doc>
2291             <type name="int" c:type="gint"/>
2292           </parameter>
2293           <parameter name="y" transfer-ownership="none">
2294             <doc xml:whitespace="preserve">Y offset of upper-left corner of the updated area.</doc>
2295             <type name="int" c:type="gint"/>
2296           </parameter>
2297           <parameter name="width" transfer-ownership="none">
2298             <doc xml:whitespace="preserve">Width of updated area.</doc>
2299             <type name="int" c:type="gint"/>
2300           </parameter>
2301           <parameter name="height" transfer-ownership="none">
2302             <doc xml:whitespace="preserve">Height of updated area.</doc>
2303             <type name="int" c:type="gint"/>
2304           </parameter>
2305         </parameters>
2306       </glib:signal>
2307       <glib:signal name="closed">
2308         <doc xml:whitespace="preserve">This signal is emitted when gdk_pixbuf_loader_close() is called.
2309 It can be used by different parts of an application to receive
2310 notification when an image loader is closed by the code that
2311 drives it.</doc>
2312         <return-value transfer-ownership="full">
2313           <type name="none" c:type="void"/>
2314         </return-value>
2315       </glib:signal>
2316       <glib:signal name="size-prepared">
2317         <doc xml:whitespace="preserve">This signal is emitted when the pixbuf loader has been fed the
2318 initial amount of data that is required to figure out the size
2319 of the image that it will create.  Applications can call  
2320 gdk_pixbuf_loader_set_size() in response to this signal to set
2321 the desired size to which the image should be scaled.</doc>
2322         <return-value transfer-ownership="full">
2323           <type name="none" c:type="void"/>
2324         </return-value>
2325         <parameters>
2326           <parameter name="width" transfer-ownership="none">
2327             <doc xml:whitespace="preserve">the original width of the image</doc>
2328             <type name="int" c:type="gint"/>
2329           </parameter>
2330           <parameter name="height" transfer-ownership="none">
2331             <doc xml:whitespace="preserve">the original height of the image</doc>
2332             <type name="int" c:type="gint"/>
2333           </parameter>
2334         </parameters>
2335       </glib:signal>
2336     </class>
2337     <record name="PixbufLoaderClass"
2338             c:type="GdkPixbufLoaderClass"
2339             glib:is-gtype-struct-for="PixbufLoader">
2340       <field name="parent_class">
2341         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
2342       </field>
2343       <field name="size_prepared">
2344         <callback name="size_prepared" c:type="size_prepared">
2345           <return-value transfer-ownership="none">
2346             <type name="none" c:type="void"/>
2347           </return-value>
2348           <parameters>
2349             <parameter name="loader" transfer-ownership="none">
2350               <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2351             </parameter>
2352             <parameter name="width" transfer-ownership="none">
2353               <type name="int" c:type="int"/>
2354             </parameter>
2355             <parameter name="height" transfer-ownership="none">
2356               <type name="int" c:type="int"/>
2357             </parameter>
2358           </parameters>
2359         </callback>
2360       </field>
2361       <field name="area_prepared">
2362         <callback name="area_prepared" c:type="area_prepared">
2363           <return-value transfer-ownership="none">
2364             <type name="none" c:type="void"/>
2365           </return-value>
2366           <parameters>
2367             <parameter name="loader" transfer-ownership="none">
2368               <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2369             </parameter>
2370           </parameters>
2371         </callback>
2372       </field>
2373       <field name="area_updated">
2374         <callback name="area_updated" c:type="area_updated">
2375           <return-value transfer-ownership="none">
2376             <type name="none" c:type="void"/>
2377           </return-value>
2378           <parameters>
2379             <parameter name="loader" transfer-ownership="none">
2380               <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2381             </parameter>
2382             <parameter name="x" transfer-ownership="none">
2383               <type name="int" c:type="int"/>
2384             </parameter>
2385             <parameter name="y" transfer-ownership="none">
2386               <type name="int" c:type="int"/>
2387             </parameter>
2388             <parameter name="width" transfer-ownership="none">
2389               <type name="int" c:type="int"/>
2390             </parameter>
2391             <parameter name="height" transfer-ownership="none">
2392               <type name="int" c:type="int"/>
2393             </parameter>
2394           </parameters>
2395         </callback>
2396       </field>
2397       <field name="closed">
2398         <callback name="closed" c:type="closed">
2399           <return-value transfer-ownership="none">
2400             <type name="none" c:type="void"/>
2401           </return-value>
2402           <parameters>
2403             <parameter name="loader" transfer-ownership="none">
2404               <type name="PixbufLoader" c:type="GdkPixbufLoader*"/>
2405             </parameter>
2406           </parameters>
2407         </callback>
2408       </field>
2409     </record>
2410     <record name="PixbufModule" c:type="GdkPixbufModule">
2411       <field name="module_name" writable="1">
2412         <type name="utf8" c:type="char*"/>
2413       </field>
2414       <field name="module_path" writable="1">
2415         <type name="utf8" c:type="char*"/>
2416       </field>
2417       <field name="module" writable="1">
2418         <type name="GModule.Module" c:type="GModule*"/>
2419       </field>
2420       <field name="info" writable="1">
2421         <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
2422       </field>
2423     </record>
2424     <callback name="PixbufModuleFillInfoFunc"
2425               c:type="GdkPixbufModuleFillInfoFunc">
2426       <return-value transfer-ownership="none">
2427         <type name="none" c:type="void"/>
2428       </return-value>
2429       <parameters>
2430         <parameter name="info" transfer-ownership="none">
2431           <type name="PixbufFormat" c:type="GdkPixbufFormat*"/>
2432         </parameter>
2433       </parameters>
2434     </callback>
2435     <callback name="PixbufModuleFillVtableFunc"
2436               c:type="GdkPixbufModuleFillVtableFunc">
2437       <return-value transfer-ownership="none">
2438         <type name="none" c:type="void"/>
2439       </return-value>
2440       <parameters>
2441         <parameter name="module" transfer-ownership="none">
2442           <type name="PixbufModule" c:type="GdkPixbufModule*"/>
2443         </parameter>
2444       </parameters>
2445     </callback>
2446     <record name="PixbufModulePattern" c:type="GdkPixbufModulePattern">
2447       <field name="prefix" writable="1">
2448         <type name="utf8" c:type="char*"/>
2449       </field>
2450       <field name="mask" writable="1">
2451         <type name="utf8" c:type="char*"/>
2452       </field>
2453       <field name="relevance" writable="1">
2454         <type name="int" c:type="int"/>
2455       </field>
2456     </record>
2457     <callback name="PixbufModulePreparedFunc"
2458               c:type="GdkPixbufModulePreparedFunc">
2459       <return-value transfer-ownership="none">
2460         <type name="none" c:type="void"/>
2461       </return-value>
2462       <parameters>
2463         <parameter name="pixbuf" transfer-ownership="none">
2464           <type name="Pixbuf" c:type="GdkPixbuf*"/>
2465         </parameter>
2466         <parameter name="anim" transfer-ownership="none">
2467           <type name="PixbufAnimation" c:type="GdkPixbufAnimation*"/>
2468         </parameter>
2469         <parameter name="user_data" transfer-ownership="none" closure="2">
2470           <type name="any" c:type="gpointer"/>
2471         </parameter>
2472       </parameters>
2473     </callback>
2474     <callback name="PixbufModuleSizeFunc" c:type="GdkPixbufModuleSizeFunc">
2475       <return-value transfer-ownership="none">
2476         <type name="none" c:type="void"/>
2477       </return-value>
2478       <parameters>
2479         <parameter name="width"
2480                    direction="out"
2481                    caller-allocates="0"
2482                    transfer-ownership="full">
2483           <type name="int" c:type="gint*"/>
2484         </parameter>
2485         <parameter name="height"
2486                    direction="out"
2487                    caller-allocates="0"
2488                    transfer-ownership="full">
2489           <type name="int" c:type="gint*"/>
2490         </parameter>
2491         <parameter name="user_data" transfer-ownership="none" closure="2">
2492           <type name="any" c:type="gpointer"/>
2493         </parameter>
2494       </parameters>
2495     </callback>
2496     <callback name="PixbufModuleUpdatedFunc"
2497               c:type="GdkPixbufModuleUpdatedFunc">
2498       <return-value transfer-ownership="none">
2499         <type name="none" c:type="void"/>
2500       </return-value>
2501       <parameters>
2502         <parameter name="pixbuf" transfer-ownership="none">
2503           <type name="Pixbuf" c:type="GdkPixbuf*"/>
2504         </parameter>
2505         <parameter name="x" transfer-ownership="none">
2506           <type name="int" c:type="int"/>
2507         </parameter>
2508         <parameter name="y" transfer-ownership="none">
2509           <type name="int" c:type="int"/>
2510         </parameter>
2511         <parameter name="width" transfer-ownership="none">
2512           <type name="int" c:type="int"/>
2513         </parameter>
2514         <parameter name="height" transfer-ownership="none">
2515           <type name="int" c:type="int"/>
2516         </parameter>
2517         <parameter name="user_data" transfer-ownership="none" closure="5">
2518           <type name="any" c:type="gpointer"/>
2519         </parameter>
2520       </parameters>
2521     </callback>
2522     <class name="PixbufNonAnim"
2523            c:type="GdkPixbufNonAnim"
2524            parent="PixbufAnimation"
2525            glib:type-name="GdkPixbufNonAnim"
2526            glib:get-type="gdk_pixbuf_non_anim_get_type">
2527       <constructor name="new" c:identifier="gdk_pixbuf_non_anim_new">
2528         <return-value transfer-ownership="full">
2529           <type name="PixbufNonAnim" c:type="GdkPixbufAnimation*"/>
2530         </return-value>
2531         <parameters>
2532           <parameter name="pixbuf" transfer-ownership="none">
2533             <type name="Pixbuf" c:type="GdkPixbuf*"/>
2534           </parameter>
2535         </parameters>
2536       </constructor>
2537     </class>
2538     <enumeration name="PixbufRotation"
2539                  glib:type-name="GdkPixbufRotation"
2540                  glib:get-type="gdk_pixbuf_rotation_get_type"
2541                  c:type="GdkPixbufRotation">
2542       <member name="none"
2543               value="0"
2544               c:identifier="GDK_PIXBUF_ROTATE_NONE"
2545               glib:nick="none"/>
2546       <member name="counterclockwise"
2547               value="90"
2548               c:identifier="GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE"
2549               glib:nick="counterclockwise"/>
2550       <member name="upsidedown"
2551               value="180"
2552               c:identifier="GDK_PIXBUF_ROTATE_UPSIDEDOWN"
2553               glib:nick="upsidedown"/>
2554       <member name="clockwise"
2555               value="270"
2556               c:identifier="GDK_PIXBUF_ROTATE_CLOCKWISE"
2557               glib:nick="clockwise"/>
2558     </enumeration>
2559     <callback name="PixbufSaveFunc" c:type="GdkPixbufSaveFunc">
2560       <return-value transfer-ownership="none">
2561         <type name="boolean" c:type="gboolean"/>
2562       </return-value>
2563       <parameters>
2564         <parameter name="buf" transfer-ownership="none">
2565           <type name="utf8" c:type="gchar*"/>
2566         </parameter>
2567         <parameter name="count" transfer-ownership="none">
2568           <type name="gsize" c:type="gsize"/>
2569         </parameter>
2570         <parameter name="error" transfer-ownership="none">
2571           <type name="GLib.Error" c:type="GError**"/>
2572         </parameter>
2573         <parameter name="data" transfer-ownership="none">
2574           <type name="any" c:type="gpointer"/>
2575         </parameter>
2576       </parameters>
2577     </callback>
2578     <class name="PixbufSimpleAnim"
2579            c:type="GdkPixbufSimpleAnim"
2580            parent="PixbufAnimation"
2581            glib:type-name="GdkPixbufSimpleAnim"
2582            glib:get-type="gdk_pixbuf_simple_anim_get_type"
2583            glib:type-struct="PixbufSimpleAnimClass">
2584       <constructor name="new"
2585                    c:identifier="gdk_pixbuf_simple_anim_new"
2586                    version="2.8">
2587         <doc xml:whitespace="preserve">Creates a new, empty animation.</doc>
2588         <return-value transfer-ownership="full">
2589           <doc xml:whitespace="preserve">a newly allocated #GdkPixbufSimpleAnim</doc>
2590           <type name="PixbufSimpleAnim" c:type="GdkPixbufSimpleAnim*"/>
2591         </return-value>
2592         <parameters>
2593           <parameter name="width" transfer-ownership="none">
2594             <doc xml:whitespace="preserve">the width of the animation</doc>
2595             <type name="int" c:type="gint"/>
2596           </parameter>
2597           <parameter name="height" transfer-ownership="none">
2598             <doc xml:whitespace="preserve">the height of the animation</doc>
2599             <type name="int" c:type="gint"/>
2600           </parameter>
2601           <parameter name="rate" transfer-ownership="none">
2602             <doc xml:whitespace="preserve">the speed of the animation, in frames per second</doc>
2603             <type name="float" c:type="gfloat"/>
2604           </parameter>
2605         </parameters>
2606       </constructor>
2607       <method name="add_frame"
2608               c:identifier="gdk_pixbuf_simple_anim_add_frame"
2609               version="2.8">
2610         <doc xml:whitespace="preserve">Adds a new frame to @animation. The @pixbuf must
2611 have the dimensions specified when the animation 
2612 was constructed.</doc>
2613         <return-value transfer-ownership="none">
2614           <type name="none" c:type="void"/>
2615         </return-value>
2616         <parameters>
2617           <parameter name="pixbuf" transfer-ownership="none">
2618             <doc xml:whitespace="preserve">the pixbuf to add</doc>
2619             <type name="Pixbuf" c:type="GdkPixbuf*"/>
2620           </parameter>
2621         </parameters>
2622       </method>
2623       <method name="set_loop"
2624               c:identifier="gdk_pixbuf_simple_anim_set_loop"
2625               version="2.18">
2626         <doc xml:whitespace="preserve">Sets whether @animation should loop indefinitely when it reaches the end.</doc>
2627         <return-value transfer-ownership="none">
2628           <type name="none" c:type="void"/>
2629         </return-value>
2630         <parameters>
2631           <parameter name="loop" transfer-ownership="none">
2632             <doc xml:whitespace="preserve">whether to loop the animation</doc>
2633             <type name="boolean" c:type="gboolean"/>
2634           </parameter>
2635         </parameters>
2636       </method>
2637       <method name="get_loop"
2638               c:identifier="gdk_pixbuf_simple_anim_get_loop"
2639               version="2.18">
2640         <doc xml:whitespace="preserve">Gets whether @animation should loop indefinitely when it reaches the end.</doc>
2641         <return-value transfer-ownership="none">
2642           <doc xml:whitespace="preserve">%TRUE if the animation loops forever, %FALSE otherwise</doc>
2643           <type name="boolean" c:type="gboolean"/>
2644         </return-value>
2645       </method>
2646       <property name="loop"
2647                 version="2.18"
2648                 writable="1"
2649                 transfer-ownership="none">
2650         <doc xml:whitespace="preserve">Whether the animation should loop when it reaches the end.</doc>
2651         <type name="boolean" c:type="gboolean"/>
2652       </property>
2653     </class>
2654     <record name="PixbufSimpleAnimClass"
2655             c:type="GdkPixbufSimpleAnimClass"
2656             glib:is-gtype-struct-for="PixbufSimpleAnim">
2657     </record>
2658     <class name="PixbufSimpleAnimIter"
2659            c:type="GdkPixbufSimpleAnimIter"
2660            parent="PixbufAnimationIter"
2661            glib:type-name="GdkPixbufSimpleAnimIter"
2662            glib:get-type="gdk_pixbuf_simple_anim_iter_get_type">
2663     </class>
2664     <record name="Pixdata" c:type="GdkPixdata">
2665       <doc xml:whitespace="preserve">A #GdkPixdata contains pixbuf information in a form suitable for 
2666 serialization and streaming.</doc>
2667       <field name="magic" writable="1">
2668         <type name="uint32" c:type="guint32"/>
2669       </field>
2670       <field name="length" writable="1">
2671         <type name="int32" c:type="gint32"/>
2672       </field>
2673       <field name="pixdata_type" writable="1">
2674         <type name="uint32" c:type="guint32"/>
2675       </field>
2676       <field name="rowstride" writable="1">
2677         <type name="uint32" c:type="guint32"/>
2678       </field>
2679       <field name="width" writable="1">
2680         <type name="uint32" c:type="guint32"/>
2681       </field>
2682       <field name="height" writable="1">
2683         <type name="uint32" c:type="guint32"/>
2684       </field>
2685       <field name="pixel_data" writable="1">
2686         <type name="any" c:type="guint8*"/>
2687       </field>
2688       <method name="serialize" c:identifier="gdk_pixdata_serialize">
2689         <doc xml:whitespace="preserve">Serializes a #GdkPixdata structure into a byte stream.
2690 The byte stream consists of a straightforward writeout of the
2691 #GdkPixdata fields in network byte order, plus the @pixel_data
2692 bytes the structure points to.
2693 #GdkPixdata structure.</doc>
2694         <return-value transfer-ownership="full">
2695           <doc xml:whitespace="preserve">A newly-allocated string containing the serialized</doc>
2696           <array c:type="guint8*">
2697             <type name="uint8"/>
2698           </array>
2699         </return-value>
2700         <parameters>
2701           <parameter name="stream_length_p"
2702                      direction="out"
2703                      caller-allocates="0"
2704                      transfer-ownership="full">
2705             <doc xml:whitespace="preserve">location to store the resulting stream length in.</doc>
2706             <type name="uint" c:type="guint*"/>
2707           </parameter>
2708         </parameters>
2709       </method>
2710       <method name="deserialize"
2711               c:identifier="gdk_pixdata_deserialize"
2712               throws="1">
2713         <doc xml:whitespace="preserve">Deserializes (reconstruct) a #GdkPixdata structure from a byte stream.
2714 The byte stream consists of a straightforward writeout of the
2715 #GdkPixdata fields in network byte order, plus the @pixel_data
2716 bytes the structure points to.
2717 The @pixdata contents are reconstructed byte by byte and are checked
2718 for validity. This function may fail with %GDK_PIXBUF_CORRUPT_IMAGE
2719 or %GDK_PIXBUF_ERROR_UNKNOWN_TYPE.
2720 %FALSE otherwise.</doc>
2721         <return-value transfer-ownership="none">
2722           <doc xml:whitespace="preserve">Upon successful deserialization %TRUE is returned,</doc>
2723           <type name="boolean" c:type="gboolean"/>
2724         </return-value>
2725         <parameters>
2726           <parameter name="stream_length" transfer-ownership="none">
2727             <doc xml:whitespace="preserve">length of the stream used for deserialization.</doc>
2728             <type name="uint" c:type="guint"/>
2729           </parameter>
2730           <parameter name="stream" transfer-ownership="none">
2731             <doc xml:whitespace="preserve">stream of bytes containing a serialized #GdkPixdata structure.</doc>
2732             <array c:type="guint8*">
2733               <type name="uint8"/>
2734             </array>
2735           </parameter>
2736         </parameters>
2737       </method>
2738       <method name="from_pixbuf" c:identifier="gdk_pixdata_from_pixbuf">
2739         <doc xml:whitespace="preserve">Converts a #GdkPixbuf to a #GdkPixdata. If @use_rle is %TRUE, the
2740 pixel data is run-length encoded into newly-allocated memory and a 
2741 pointer to that memory is returned. 
2742 for the run-length encoded pixel data, otherwise %NULL.</doc>
2743         <return-value transfer-ownership="none">
2744           <doc xml:whitespace="preserve">If @ure_rle is %TRUE, a pointer to the newly-allocated memory</doc>
2745           <type name="any" c:type="gpointer"/>
2746         </return-value>
2747         <parameters>
2748           <parameter name="pixbuf" transfer-ownership="none">
2749             <doc xml:whitespace="preserve">the data to fill @pixdata with.</doc>
2750             <type name="Pixbuf" c:type="GdkPixbuf*"/>
2751           </parameter>
2752           <parameter name="use_rle" transfer-ownership="none">
2753             <doc xml:whitespace="preserve">whether to use run-length encoding for the pixel data.</doc>
2754             <type name="boolean" c:type="gboolean"/>
2755           </parameter>
2756         </parameters>
2757       </method>
2758       <method name="to_csource" c:identifier="gdk_pixdata_to_csource">
2759         <doc xml:whitespace="preserve">Generates C source code suitable for compiling images directly 
2760 into programs. 
2761 GTK+ ships with a program called &lt;command&gt;gdk-pixbuf-csource&lt;/command&gt; 
2762 which offers a command line interface to this function.
2763 of @pixdata.</doc>
2764         <return-value transfer-ownership="full">
2765           <doc xml:whitespace="preserve">a newly-allocated string containing the C source form</doc>
2766           <type name="GLib.String" c:type="GString*"/>
2767         </return-value>
2768         <parameters>
2769           <parameter name="name" transfer-ownership="none">
2770             <doc xml:whitespace="preserve">used for naming generated data structures or macros.</doc>
2771             <type name="utf8" c:type="gchar*"/>
2772           </parameter>
2773           <parameter name="dump_type" transfer-ownership="none">
2774             <doc xml:whitespace="preserve">a #GdkPixdataDumpType determining the kind of C source to be generated.</doc>
2775             <type name="PixdataDumpType" c:type="GdkPixdataDumpType"/>
2776           </parameter>
2777         </parameters>
2778       </method>
2779     </record>
2780     <bitfield name="PixdataDumpType" c:type="GdkPixdataDumpType">
2781       <member name="pixdata_stream"
2782               value="0"
2783               c:identifier="GDK_PIXDATA_DUMP_PIXDATA_STREAM"/>
2784       <member name="pixdata_struct"
2785               value="1"
2786               c:identifier="GDK_PIXDATA_DUMP_PIXDATA_STRUCT"/>
2787       <member name="macros" value="2" c:identifier="GDK_PIXDATA_DUMP_MACROS"/>
2788       <member name="gtypes" value="0" c:identifier="GDK_PIXDATA_DUMP_GTYPES"/>
2789       <member name="ctypes"
2790               value="256"
2791               c:identifier="GDK_PIXDATA_DUMP_CTYPES"/>
2792       <member name="static"
2793               value="512"
2794               c:identifier="GDK_PIXDATA_DUMP_STATIC"/>
2795       <member name="const" value="1024" c:identifier="GDK_PIXDATA_DUMP_CONST"/>
2796       <member name="rle_decoder"
2797               value="65536"
2798               c:identifier="GDK_PIXDATA_DUMP_RLE_DECODER"/>
2799     </bitfield>
2800     <bitfield name="PixdataType" c:type="GdkPixdataType">
2801       <doc xml:whitespace="preserve">one for the used colorspace, one for the width of the samples and one 
2802 for the encoding of the pixel data.</doc>
2803       <member name="color_type_rgb"
2804               value="1"
2805               c:identifier="GDK_PIXDATA_COLOR_TYPE_RGB"/>
2806       <member name="color_type_rgba"
2807               value="2"
2808               c:identifier="GDK_PIXDATA_COLOR_TYPE_RGBA"/>
2809       <member name="color_type_mask"
2810               value="255"
2811               c:identifier="GDK_PIXDATA_COLOR_TYPE_MASK"/>
2812       <member name="sample_width_8"
2813               value="65536"
2814               c:identifier="GDK_PIXDATA_SAMPLE_WIDTH_8"/>
2815       <member name="sample_width_mask"
2816               value="983040"
2817               c:identifier="GDK_PIXDATA_SAMPLE_WIDTH_MASK"/>
2818       <member name="encoding_raw"
2819               value="16777216"
2820               c:identifier="GDK_PIXDATA_ENCODING_RAW"/>
2821       <member name="encoding_rle"
2822               value="33554432"
2823               c:identifier="GDK_PIXDATA_ENCODING_RLE"/>
2824       <member name="encoding_mask"
2825               value="251658240"
2826               c:identifier="GDK_PIXDATA_ENCODING_MASK"/>
2827     </bitfield>
2828     <constant name="VERSION" value="2.21.1">
2829       <type name="utf8"/>
2830     </constant>
2831   </namespace>
2832 </repository>