File: classGFC_1_1Gdk_1_1PixbufAnimation.html

package info (click to toggle)
gfcui 2.3.1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 43,420 kB
  • ctags: 18,023
  • sloc: cpp: 53,967; sh: 31,555; makefile: 1,322; perl: 108
file content (295 lines) | stat: -rw-r--r-- 18,005 bytes parent folder | download | duplicates (3)
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type">
  <title>GTK+ Foundation Classes</title>
  <link href="gfc.css" rel="stylesheet" type="text/css">
  <meta content="The GFC Development Team" name="author">
  <meta content="Core Library Reference Manual" name="description">
</head>
<body style="color: rgb(0, 0, 0); background-color: rgb(243, 244, 248);"
 alink="#000099" link="#000099" vlink="#990099">
<table style="text-align: left; width: 1227px; height: 117px;"
 border="0" cellpadding="0" cellspacing="0">
  <tbody>
    <tr>
      <td
 style="text-align: center; background-color: rgb(255, 255, 255); width: 220px; vertical-align: top;"><img
 alt="GFC Logo" src="../images/gfc.png"
 style="width: 207px; height: 92px;"></td>
      <td
 style="text-align: center; background-color: rgb(87, 107, 152); vertical-align: middle;"><img
 alt="GFC Title Logo" src="../images/gfc-title.png"
 style="width: 418px; height: 76px;"><br>
      </td>
    </tr>
    <tr>
      <td
 style="text-align: center; background-color: rgb(65, 77, 104); vertical-align: middle;"><big><span
 style="color: rgb(255, 255, 153); font-weight: bold;">Reference Manual</span></big><br>
      </td>
      <td
 style="text-align: center; background-color: rgb(148, 164, 200); vertical-align: middle;"><small
 style="font-family: helvetica,arial,sans-serif;"><a
 href="../html/index.html">Main Page</a>&nbsp; |&nbsp; <a
 href="../html/namespaces.html">Namespace List</a>&nbsp; |&nbsp; <a
 href="classes.html">Alphabetical List</a>&nbsp; |&nbsp; <a
 href="../html/annotated.html">Class List</a>&nbsp; |&nbsp; <a
 href="../html/files.html">File List</a></small><br>
      </td>
    </tr>
  </tbody>
</table>
<small> </small>
</body>
</html>
<!-- Generated by Doxygen 1.3.8 -->
<h1>GFC::Gdk::PixbufAnimation Class Reference</h1>A GdkPixbufAnimation C++ wrapper class.  
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="pixbuf-animation_8hh-source.html">gfc/gdk-pixbuf/pixbuf-animation.hh</a>&gt;</code>
<p>
<p>Inheritance diagram for GFC::Gdk::PixbufAnimation:
<p><center><img src="classGFC_1_1Gdk_1_1PixbufAnimation.png" usemap="#GFC::Gdk::PixbufAnimation_map" border="0" alt=""></center>
<map name="GFC::Gdk::PixbufAnimation_map">
<area doxygen="gfccore.tag:" href="classGFC_1_1G_1_1Object.html" alt="GFC::G::Object" shape="rect" coords="0,112,162,136">
<area doxygen="gfccore.tag:" href="classGFC_1_1G_1_1TypeInstance.html" alt="GFC::G::TypeInstance" shape="rect" coords="0,56,162,80">
<area doxygen="gfccore.tag:" href="classGFC_1_1Trackable.html" alt="GFC::Trackable" shape="rect" coords="0,0,162,24">
</map>
<a href="classGFC_1_1Gdk_1_1PixbufAnimation-members.html">List of all members.</a><h2>Public Member Functions</h2>
<tr><td colspan="2"><div class="groupHeader">Constructors</div></td></tr>
<ul>
<li><a class="anchor" name="z241_0" doxytag="GFC::Gdk::PixbufAnimation::~PixbufAnimation" ></a>
virtual <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z241_0">~PixbufAnimation</a> ()
<dl class="el"><dd class="mdescRight">Destructor. <br></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Accessors</div></td></tr>
<ul>
<li><a class="anchor" name="z242_0" doxytag="GFC::Gdk::PixbufAnimation::gdk_pixbuf_animation" ></a>
GdkPixbufAnimation * <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_0">gdk_pixbuf_animation</a> () const
<dl class="el"><dd class="mdescRight">Get a pointer to the GdkPixbufAnimation structure. <br></dl><li><a class="anchor" name="z242_1" doxytag="GFC::Gdk::PixbufAnimation::operator GdkPixbufAnimation *" ></a>
<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_1">operator GdkPixbufAnimation *</a> () const
<dl class="el"><dd class="mdescRight">Conversion operator; safely converts a <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a> to a GdkPixbufAnimation pointer. <br></dl><li><a class="anchor" name="z242_2" doxytag="GFC::Gdk::PixbufAnimation::get_width" ></a>
int <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_2">get_width</a> () const
<dl class="el"><dd class="mdescRight">Returns the width of the bounding box of a pixbuf animation. <br></dl><li><a class="anchor" name="z242_3" doxytag="GFC::Gdk::PixbufAnimation::get_height" ></a>
int <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_3">get_height</a> () const
<dl class="el"><dd class="mdescRight">Returns the height of the bounding box of a pixbuf animation. <br></dl><li>bool <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_4">is_static_image</a> () const
<dl class="el"><dd class="mdescRight">If you load a file and it turns out to be a plain, unanimated image, then this method will return true.  <a href="#z242_4"></a><br></dl><li><a class="el" href="classGFC_1_1Gdk_1_1Pixbuf.html">Pixbuf</a> * <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_5">get_static_image</a> () const
<dl class="el"><dd class="mdescRight">If an animation is really just a plain image (has only one frame), this method returns that image.  <a href="#z242_5"></a><br></dl><li><a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1Pointer.html">Pointer</a>&lt; <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html">PixbufAnimationIter</a> &gt; <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_6">get_iter</a> (const GTimeVal *start_time=0) const
<dl class="el"><dd class="mdescRight">Get an iterator for displaying an animation.  <a href="#z242_6"></a><br></dl></ul>
<h2>Static Public Member Functions</h2>
<ul>
<li><a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1Pointer.html">Pointer</a>&lt; <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a> &gt; <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#e1">create</a> (const <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1String.html">String</a> &amp;filename, <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1G_1_1Error.html">G::Error</a> *error)
<dl class="el"><dd class="mdescRight">Constructs a new animation by loading it from a file.  <a href="#e1"></a><br></dl></ul>
<h2>Protected Member Functions</h2>
<tr><td colspan="2"><div class="groupHeader">Constructors</div></td></tr>
<ul>
<li><a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z240_0">PixbufAnimation</a> (GdkPixbufAnimation *pixbuf_animation, bool <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1Trackable.html#z143_1">owns_reference</a>=true)
<dl class="el"><dd class="mdescRight">Construct a new <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a> from an existing GdkPixbufAnimation.  <a href="#z240_0"></a><br></dl></ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A GdkPixbufAnimation C++ wrapper class. 
<p>
<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a> provides a simple mechanism to load and represent animations. An animation is conceptually a series of frames to be displayed over time. Each frame is the same size. The animation may not be represented as a series of frames internally; for example, it may be stored as a sprite and instructions for moving the sprite around a background. To display an animation you don't need to understand its representation, however; you just ask gdk-pixbuf what should be displayed at a given point in time. 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="z240_0" doxytag="GFC::Gdk::PixbufAnimation::PixbufAnimation" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> GFC::Gdk::PixbufAnimation::PixbufAnimation           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">GdkPixbufAnimation *&nbsp;</td>
          <td class="mdname" nowrap> <em>pixbuf_animation</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap>bool&nbsp;</td>
          <td class="mdname" nowrap> <em>owns_reference</em> = <code>true</code></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [explicit, protected]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Construct a new <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a> from an existing GdkPixbufAnimation. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>pixbuf_animation</em>&nbsp;</td><td>A pointer to a GdkPixbufAnimation. </td></tr>
    <tr><td></td><td valign=top><em>owns_reference</em>&nbsp;</td><td>Set false if the initial reference count is floating, set true if it's not.</td></tr>
  </table>
</dl>
<br>
The <em>pixbuf_animation</em> can be a newly created GdkPixbufAnimation or an existing GdkPixbufAnimation. (see <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1G_1_1Object.html#z68_0">G::Object::Object</a>).     </td>
  </tr>
</table>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e1" doxytag="GFC::Gdk::PixbufAnimation::create" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1Pointer.html">Pointer</a>&lt;<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html">PixbufAnimation</a>&gt; GFC::Gdk::PixbufAnimation::create           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1String.html">String</a> &amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>filename</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td></td>
          <td class="md" nowrap><a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1G_1_1Error.html">G::Error</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>error</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Constructs a new animation by loading it from a file. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>filename</em>&nbsp;</td><td>Ther name of file to load. </td></tr>
    <tr><td></td><td valign=top><em>error</em>&nbsp;</td><td>The return location for any error.</td></tr>
  </table>
</dl>
<br>
The file format is detected automatically. If the file's format does not support multi-frame images, then an animation with a single frame will be created. Possible errors are in the GDK_PIXBUF_ERROR and G_FILE_ERROR domains. Possible error conditions include: the file could not be opened, there was no loader for the file's format, there was not enough memory to allocate the image buffer, or the image file contained invalid data.     </td>
  </tr>
</table>
<a class="anchor" name="z242_6" doxytag="GFC::Gdk::PixbufAnimation::get_iter" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="elRef" doxygen="gfccore.tag:" href="classGFC_1_1Pointer.html">Pointer</a>&lt;<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html">PixbufAnimationIter</a>&gt; GFC::Gdk::PixbufAnimation::get_iter           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const GTimeVal *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>start_time</em> = <code>0</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get an iterator for displaying an animation. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>start_time</em>&nbsp;</td><td>The time when the animation starts playing, or null to automatically use the result of g_get_current_time(). </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>An iterator to move over the animation</dd></dl>
<br>
The iterator provides the frames that should be displayed at a given time. <em>start_time</em> would normally come from g_get_current_time(), and marks the beginning of animation playback. After creating an iterator, you should immediately display the pixbuf returned by <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_3">Gdk::PixbufAnimationIter::get_pixbuf()</a>. Then, you should install a timeout (with g_timeout_add()) or by some other mechanism to ensure that you'll update the image after <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_2">Gdk::PixbufAnimationIter::get_delay_time()</a> milliseconds. Each time the image is updated, you should reinstall the timeout with the new, possibly-changed delay time. As a shortcut, if start_time is null, the result of g_get_current_time() will be used automatically.<p>
To update the image (i.e. possibly change the result of <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_3">Gdk::PixbufAnimationIter::get_pixbuf()</a> to a new frame of the animation), call <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z239_0">Gdk::PixbufAnimationIter::advance()</a>.<p>
If you're using <a class="el" href="classGFC_1_1Gdk_1_1PixbufLoader.html">PixbufLoader</a>, in addition to updating the image after the delay time, you should also update it whenever you receive the <em>area_updated</em> signal and <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_4">Gdk::PixbufAnimationIter::on_currently_loading_frame()</a> returns true. In this case, the frame currently being fed into the loader has received new data, so needs to be refreshed. The delay time for a frame may also be modified after an <em>area_updated</em> signal, for example if the delay time for a frame is encoded in the data after the frame itself. So your timeout should be reinstalled after any <em>area_updated</em> signal. A delay time of -1 is possible, indicating "infinite."     </td>
  </tr>
</table>
<a class="anchor" name="z242_5" doxytag="GFC::Gdk::PixbufAnimation::get_static_image" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="classGFC_1_1Gdk_1_1Pixbuf.html">Pixbuf</a>* GFC::Gdk::PixbufAnimation::get_static_image           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
If an animation is really just a plain image (has only one frame), this method returns that image. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>An unanimated image representing the animation.</dd></dl>
<br>
If the animation is an animation, this function returns a reasonable thing to display as a static unanimated image, which might be the first frame, or something more sophisticated. If an animation hasn't loaded any frames yet, this function will return null.     </td>
  </tr>
</table>
<a class="anchor" name="z242_4" doxytag="GFC::Gdk::PixbufAnimation::is_static_image" ></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> bool GFC::Gdk::PixbufAnimation::is_static_image           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap> const</td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
If you load a file and it turns out to be a plain, unanimated image, then this method will return true. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if the "animation" was really just an image.</dd></dl>
<br>
Use <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_5">get_static_image()</a> to retrieve the image.     </td>
  </tr>
</table>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="pixbuf-animation_8hh-source.html">pixbuf-animation.hh</a></ul>
<hr size="1"><address style="align: right;"><small>Generated on Tue Aug 24 00:34:36 2004 for GFC-UI by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 ></a> 1.3.8 </small></address>
</body>
</html>