File: classGFC_1_1Gdk_1_1PixbufAnimationIter.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 (275 lines) | stat: -rw-r--r-- 15,588 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
<!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::PixbufAnimationIter Class Reference</h1>A GdkPixbufAnimationIter 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::PixbufAnimationIter:
<p><center><img src="classGFC_1_1Gdk_1_1PixbufAnimationIter.png" usemap="#GFC::Gdk::PixbufAnimationIter_map" border="0" alt=""></center>
<map name="GFC::Gdk::PixbufAnimationIter_map">
<area doxygen="gfccore.tag:" href="classGFC_1_1G_1_1Object.html" alt="GFC::G::Object" shape="rect" coords="0,112,180,136">
<area doxygen="gfccore.tag:" href="classGFC_1_1G_1_1TypeInstance.html" alt="GFC::G::TypeInstance" shape="rect" coords="0,56,180,80">
<area doxygen="gfccore.tag:" href="classGFC_1_1Trackable.html" alt="GFC::Trackable" shape="rect" coords="0,0,180,24">
</map>
<a href="classGFC_1_1Gdk_1_1PixbufAnimationIter-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="z237_0" doxytag="GFC::Gdk::PixbufAnimationIter::~PixbufAnimationIter" ></a>
virtual <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z237_0">~PixbufAnimationIter</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="z238_0" doxytag="GFC::Gdk::PixbufAnimationIter::gdk_pixbuf_animation_iter" ></a>
GdkPixbufAnimationIter * <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_0">gdk_pixbuf_animation_iter</a> () const
<dl class="el"><dd class="mdescRight">Get a pointer to the GdkPixbufAnimationIter structure. <br></dl><li><a class="anchor" name="z238_1" doxytag="GFC::Gdk::PixbufAnimationIter::operator GdkPixbufAnimationIter *" ></a>
<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_1">operator GdkPixbufAnimationIter *</a> () const
<dl class="el"><dd class="mdescRight">Conversion operator; safely converts a <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html">PixbufAnimationIter</a> to a GdkPixbufAnimationIter pointer. <br></dl><li>int <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_2">get_delay_time</a> () const
<dl class="el"><dd class="mdescRight">Gets the number of milliseconds the current pixbuf should be displayed, or -1 if the current pixbuf should be displayed forever.  <a href="#z238_2"></a><br></dl><li><a class="el" href="classGFC_1_1Gdk_1_1Pixbuf.html">Pixbuf</a> * <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_3">get_pixbuf</a> () const
<dl class="el"><dd class="mdescRight">Gets the current pixbuf which should be displayed; the pixbuf will be the same size as the animation itself (<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_2">Gdk::PixbufAnimation::get_width()</a>, <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_3">Gdk::PixbufAnimation::get_height()</a>).  <a href="#z238_3"></a><br></dl><li>bool <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_4">on_currently_loading_frame</a> () const
<dl class="el"><dd class="mdescRight">Used to determine how to respond to the <em>area_updated</em> signal on <a class="el" href="classGFC_1_1Gdk_1_1PixbufLoader.html">PixbufLoader</a> when loading an animation.  <a href="#z238_4"></a><br></dl></ul>
<tr><td colspan="2"><div class="groupHeader">Methods</div></td></tr>
<ul>
<li>bool <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z239_0">advance</a> (const GTimeVal *current_time=0)
<dl class="el"><dd class="mdescRight">Possibly advances an animation to a new frame.  <a href="#z239_0"></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_1PixbufAnimationIter.html#z236_0">PixbufAnimationIter</a> (GdkPixbufAnimationIter *iter, 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_1PixbufAnimationIter.html">PixbufAnimationIter</a> from an existing GdkPixbufAnimationIter.  <a href="#z236_0"></a><br></dl></ul>
<hr><a name="_details"></a><h2>Detailed Description</h2>
A GdkPixbufAnimationIter C++ wrapper class. 
<p>
<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html">PixbufAnimationIter</a> provides the necessary functionality to display an animation by providing the frames that should be displayed at a given time. 
<p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="z236_0" doxytag="GFC::Gdk::PixbufAnimationIter::PixbufAnimationIter" ></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::PixbufAnimationIter::PixbufAnimationIter           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">GdkPixbufAnimationIter *&nbsp;</td>
          <td class="mdname" nowrap> <em>iter</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_1PixbufAnimationIter.html">PixbufAnimationIter</a> from an existing GdkPixbufAnimationIter. 
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>iter</em>&nbsp;</td><td>A pointer to a GdkPixbufAnimationIter. </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>iter</em> can be a newly created GdkPixbufAnimationIter or an existing GdkPixbufAnimationIter. (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="z239_0" doxytag="GFC::Gdk::PixbufAnimationIter::advance" ></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::PixbufAnimationIter::advance           </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>current_time</em> = <code>0</code>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Possibly advances an animation to a new frame. 
<p>
Chooses the frame based on the start time passed to <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_6">Gdk::PixbufAnimation::get_iter()</a>. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td></td><td valign=top><em>current_time</em>&nbsp;</td><td>The current time, or null to automatically use the result of g_get_current_time(). </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if the image may need updating.</dd></dl>
<br>
The <em>current_time</em> would normally come from g_get_current_time(), and must be greater than or equal to the time passed to <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_6">Gdk::PixbufAnimation::get_iter()</a>, and must increase or remain unchanged each time <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_3">get_pixbuf()</a> is called. That is, you can't go backward in time; animations only play forward. As a shortcut, pass null for the current time and g_get_current_time() will be invoked on your behalf. So you only need to explicitly pass current_time if you're doing something odd like playing the animation at double speed.<p>
If this method returns false, there's no need to update the animation display, assuming the display had been rendered prior to advancing; if true, you need to call <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z238_3">get_pixbuf()</a> and update the display with the new pixbuf.     </td>
  </tr>
</table>
<a class="anchor" name="z238_2" doxytag="GFC::Gdk::PixbufAnimationIter::get_delay_time" ></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"> int GFC::Gdk::PixbufAnimationIter::get_delay_time           </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>
Gets the number of milliseconds the current pixbuf should be displayed, or -1 if the current pixbuf should be displayed forever. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The delay time in milliseconds (thousandths of a second).</dd></dl>
<br>
g_timeout_add() conveniently takes a timeout in milliseconds, so you can use a timeout to schedule the next update.     </td>
  </tr>
</table>
<a class="anchor" name="z238_3" doxytag="GFC::Gdk::PixbufAnimationIter::get_pixbuf" ></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::PixbufAnimationIter::get_pixbuf           </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>
Gets the current pixbuf which should be displayed; the pixbuf will be the same size as the animation itself (<a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_2">Gdk::PixbufAnimation::get_width()</a>, <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimation.html#z242_3">Gdk::PixbufAnimation::get_height()</a>). 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>The pixbuf to be displayed.</dd></dl>
<br>
This pixbuf should be displayed for Gdk::PixbufAnimation::get_delay_time() milliseconds. The caller of this function does not own a reference to the returned pixbuf; the returned pixbuf will become invalid when the iterator advances to the next frame, which may happen anytime you call <a class="el" href="classGFC_1_1Gdk_1_1PixbufAnimationIter.html#z239_0">advance()</a>. Copy the pixbuf to keep it (don't just add a reference), as it may get recycled as you advance the iterator.     </td>
  </tr>
</table>
<a class="anchor" name="z238_4" doxytag="GFC::Gdk::PixbufAnimationIter::on_currently_loading_frame" ></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::PixbufAnimationIter::on_currently_loading_frame           </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>
Used to determine how to respond to the <em>area_updated</em> signal on <a class="el" href="classGFC_1_1Gdk_1_1PixbufLoader.html">PixbufLoader</a> when loading an animation. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd><em>true</em> if the frame we're on is partially loaded, or the last frame.</dd></dl>
<br>
The <em>area_updated</em> signal is emitted for an area of the frame currently streaming in to the loader. So if you're on the currently loading frame, you need to redraw the screen for the updated area.     </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>