File: gdk-Cairo-Interaction.html

package info (click to toggle)
gtk%2B2.0 2.20.1-2%2Bdeb6u2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze-lts
  • size: 136,284 kB
  • ctags: 66,487
  • sloc: ansic: 590,318; sh: 10,559; makefile: 5,573; xml: 1,357; python: 866; perl: 776; asm: 457; awk: 72; cpp: 34
file content (311 lines) | stat: -rw-r--r-- 19,817 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Cairo Interaction</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="GDK Reference Manual">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="gdk-Pango-Interaction.html" title="Pango Interaction">
<link rel="next" href="gdk-X-Window-System-Interaction.html" title="X Window System Interaction">
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="gdk-Pango-Interaction.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GDK Reference Manual</th>
<td><a accesskey="n" href="gdk-X-Window-System-Interaction.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gdk-Cairo-Interaction.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gdk-Cairo-Interaction.description" class="shortcut">Description</a>
</td></tr>
</table>
<div class="refentry" title="Cairo Interaction">
<a name="gdk-Cairo-Interaction"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gdk-Cairo-Interaction.top_of_page"></a>Cairo Interaction</span></h2>
<p>Cairo Interaction — Functions to support using Cairo</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv" title="Synopsis">
<a name="gdk-Cairo-Interaction.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">
#include &lt;gdk/gdk.h&gt;

<a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="returnvalue">cairo_t</span></a> *           <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-create" title="gdk_cairo_create ()">gdk_cairo_create</a>                    (<em class="parameter"><code><a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> *drawable</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-set-source-color" title="gdk_cairo_set_source_color ()">gdk_cairo_set_source_color</a>          (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Colormaps-and-Colors.html#GdkColor" title="GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-set-source-pixbuf" title="gdk_cairo_set_source_pixbuf ()">gdk_cairo_set_source_pixbuf</a>         (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixbuf_x</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixbuf_y</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-set-source-pixmap" title="gdk_cairo_set_source_pixmap ()">gdk_cairo_set_source_pixmap</a>         (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gdk-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> *pixmap</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixmap_x</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixmap_y</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-rectangle" title="gdk_cairo_rectangle ()">gdk_cairo_rectangle</a>                 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRectangle" title="GdkRectangle"><span class="type">GdkRectangle</span></a> *rectangle</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-region" title="gdk_cairo_region ()">gdk_cairo_region</a>                    (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRegion" title="GdkRegion"><span class="type">GdkRegion</span></a> *region</code></em>);
<span class="returnvalue">void</span>                <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-reset-clip" title="gdk_cairo_reset_clip ()">gdk_cairo_reset_clip</a>                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> *drawable</code></em>);
</pre>
</div>
<div class="refsect1" title="Description">
<a name="gdk-Cairo-Interaction.description"></a><h2>Description</h2>
<p>
Cairo is a graphics
library that supports vector graphics and image compositing that
can be used with GDK. Since 2.8, GTK+ does most of its drawing
using Cairo.
</p>
<p>
GDK does not wrap the Cairo API, instead it allows to create Cairo
contexts which can be used to draw on GDK drawables. Additional
functions allow to convert GDK's rectangles and regions into
Cairo paths and to use pixbufs as sources for drawing operations.
</p>
</div>
<div class="refsect1" title="Details">
<a name="gdk-Cairo-Interaction.details"></a><h2>Details</h2>
<div class="refsect2" title="gdk_cairo_create ()">
<a name="gdk-cairo-create"></a><h3>gdk_cairo_create ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="returnvalue">cairo_t</span></a> *           gdk_cairo_create                    (<em class="parameter"><code><a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> *drawable</code></em>);</pre>
<p>
Creates a Cairo context for drawing to <em class="parameter"><code>drawable</code></em>.
</p>
<p>
</p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
Note that due to double-buffering, Cairo contexts created 
in a GTK+ expose event handler cannot be cached and reused 
between different expose events. 
</p>
</div>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>drawable</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td> A newly created Cairo context. Free with
 <a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-destroy"><code class="function">cairo_destroy()</code></a> when you are done drawing.

</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_set_source_color ()">
<a name="gdk-cairo-set-source-color"></a><h3>gdk_cairo_set_source_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_set_source_color          (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Colormaps-and-Colors.html#GdkColor" title="GdkColor"><span class="type">GdkColor</span></a> *color</code></em>);</pre>
<p>
Sets the specified <a class="link" href="gdk-Colormaps-and-Colors.html#GdkColor" title="GdkColor"><span class="type">GdkColor</span></a> as the source color of <em class="parameter"><code>cr</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>color</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Colormaps-and-Colors.html#GdkColor" title="GdkColor"><span class="type">GdkColor</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_set_source_pixbuf ()">
<a name="gdk-cairo-set-source-pixbuf"></a><h3>gdk_cairo_set_source_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_set_source_pixbuf         (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a> *pixbuf</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixbuf_x</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixbuf_y</code></em>);</pre>
<p>
Sets the given pixbuf as the source pattern for the Cairo context.
The pattern has an extend mode of <code class="literal">CAIRO_EXTEND_NONE</code> and is aligned
so that the origin of <em class="parameter"><code>pixbuf</code></em> is <em class="parameter"><code>pixbuf_x</code></em>, <em class="parameter"><code>pixbuf_y</code></em>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <span class="type">Cairo</span> context
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixbuf</code></em> :</span></p></td>
<td>a <a href="http://library.gnome.org/devel/gdk-pixbuf/unstable/gdk-pixbuf-gdk-pixbuf.html#GdkPixbuf"><span class="type">GdkPixbuf</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixbuf_x</code></em> :</span></p></td>
<td>X coordinate of location to place upper left corner of <em class="parameter"><code>pixbuf</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixbuf_y</code></em> :</span></p></td>
<td>Y coordinate of location to place upper left corner of <em class="parameter"><code>pixbuf</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_set_source_pixmap ()">
<a name="gdk-cairo-set-source-pixmap"></a><h3>gdk_cairo_set_source_pixmap ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_set_source_pixmap         (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gdk-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a> *pixmap</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixmap_x</code></em>,
                                                         <em class="parameter"><code><span class="type">double</span> pixmap_y</code></em>);</pre>
<p>
Sets the given pixmap as the source pattern for the Cairo context.
The pattern has an extend mode of <code class="literal">CAIRO_EXTEND_NONE</code> and is aligned
so that the origin of <em class="parameter"><code>pixmap</code></em> is <em class="parameter"><code>pixmap_x</code></em>, <em class="parameter"><code>pixmap_y</code></em>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <span class="type">Cairo</span> context
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixmap</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Bitmaps-and-Pixmaps.html#GdkPixmap"><span class="type">GdkPixmap</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixmap_x</code></em> :</span></p></td>
<td>X coordinate of location to place upper left corner of <em class="parameter"><code>pixmap</code></em>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pixmap_y</code></em> :</span></p></td>
<td>Y coordinate of location to place upper left corner of <em class="parameter"><code>pixmap</code></em>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.10</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_rectangle ()">
<a name="gdk-cairo-rectangle"></a><h3>gdk_cairo_rectangle ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_rectangle                 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRectangle" title="GdkRectangle"><span class="type">GdkRectangle</span></a> *rectangle</code></em>);</pre>
<p>
Adds the given rectangle to the current path of <em class="parameter"><code>cr</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRectangle" title="GdkRectangle"><span class="type">GdkRectangle</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_region ()">
<a name="gdk-cairo-region"></a><h3>gdk_cairo_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_region                    (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code>const <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRegion" title="GdkRegion"><span class="type">GdkRegion</span></a> *region</code></em>);</pre>
<p>
Adds the given region to the current path of <em class="parameter"><code>cr</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>region</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Points-Rectangles-and-Regions.html#GdkRegion" title="GdkRegion"><span class="type">GdkRegion</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.8</p>
</div>
<hr>
<div class="refsect2" title="gdk_cairo_reset_clip ()">
<a name="gdk-cairo-reset-clip"></a><h3>gdk_cairo_reset_clip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>                gdk_cairo_reset_clip                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a> *drawable</code></em>);</pre>
<p>
Resets the clip region for a Cairo context created by <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-create" title="gdk_cairo_create ()"><code class="function">gdk_cairo_create()</code></a>.
</p>
<p>
This resets the clip region to the "empty" state for the given drawable.
This is required for non-native windows since a direct call to
<a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-reset-clip"><code class="function">cairo_reset_clip()</code></a> would unset the clip region inherited from the
drawable (i.e. the window clip region), and thus let you e.g.
draw outside your window.
</p>
<p>
This is rarely needed though, since most code just create a new cairo_t
using <a class="link" href="gdk-Cairo-Interaction.html#gdk-cairo-create" title="gdk_cairo_create ()"><code class="function">gdk_cairo_create()</code></a> each time they want to draw something.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>cr</code></em> :</span></p></td>
<td>a <a href="/usr/share/gtk-doc/html/cairo/cairo-context.html#cairo-t"><span class="type">cairo_t</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>drawable</code></em> :</span></p></td>
<td>a <a class="link" href="gdk-Drawing-Primitives.html#GdkDrawable"><span class="type">GdkDrawable</span></a>
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since 2.18</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.14</div>
</body>
</html>