Class PixbufAnimationIter
- All Implemented Interfaces:
Proxy
- Direct Known Subclasses:
PixbufSimpleAnimIter
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Inner class implementing a builder pattern to construct a GObject with properties.static class
Modules supporting animations must derive a type fromGdkPixbufAnimationIter
, providing suitable implementations of the virtual functions.Nested classes/interfaces inherited from class org.gnome.gobject.GObject
GObject.NotifyCallback, GObject.ObjectClass
-
Constructor Summary
ConstructorDescriptionPixbufAnimationIter
(MemorySegment address) Create a PixbufAnimationIter proxy instance for the provided memory address. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Possibly advances an animation to a new frame.protected PixbufAnimationIter
asParent()
Returns this instance as if it were its parent type.static PixbufAnimationIter.Builder
<? extends PixbufAnimationIter.Builder> builder()
APixbufAnimationIter.Builder
object constructs aPixbufAnimationIter
with the specified properties.int
Gets the number of milliseconds the current pixbuf should be displayed, or -1 if the current pixbuf should be displayed forever.static MemoryLayout
The memory layout of the native struct.Gets the current pixbuf which should be displayed.static Type
getType()
Get the GType of the PixbufAnimationIter classboolean
Used to determine how to respond to the area_updated signal onGdkPixbufLoader
when loading an animation.Methods inherited from class org.gnome.gobject.GObject
addToggleRef, addWeakPointer, bindProperty, bindProperty, bindProperty, bindPropertyFull, bindPropertyFull, bindPropertyWithClosures, bindPropertyWithClosures, compatControl, connect, connect, connect, constructed, disconnect, dispatchPropertiesChanged, dispose, dupData, dupQdata, emit, emitNotify, finalize_, forceFloating, freezeNotify, get, getData, getProperty, getProperty, getProperty, getQdata, getv, interfaceFindProperty, interfaceInstallProperty, interfaceListProperties, isFloating, newInstance, newInstance, newInstance, newInstance, newv, notify_, notify_, notifyByPspec, onNotify, ref, refSink, removeToggleRef, removeWeakPointer, replaceData, replaceQdata, runDispose, set, setData, setDataFull, setProperty, setProperty, setProperty, setQdata, setQdataFull, setv, stealData, stealQdata, takeRef, thawNotify, unref, watchClosure, weakRef, weakUnref, withProperties
Methods inherited from class org.gnome.gobject.TypeInstance
callParent, callParent, getPrivate, readGClass, writeGClass
Methods inherited from class io.github.jwharm.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
PixbufAnimationIter
Create a PixbufAnimationIter proxy instance for the provided memory address.- Parameters:
address
- the memory address of the native object
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
asParent
Returns this instance as if it were its parent type. This is mostly synonymous to the Javasuper
keyword, but will set the native typeclass function pointers to the parent type. When overriding a native virtual method in Java, "chaining up" withsuper.methodName()
doesn't work, because it invokes the overridden function pointer again. To chain up, callasParent().methodName()
. This will call the native function pointer of this virtual method in the typeclass of the parent type. -
advance
Possibly advances an animation to a new frame.Chooses the frame based on the start time passed to gdk_pixbuf_animation_get_iter().
currentTime
would normally come from g_get_current_time(), and must be greater than or equal to the time passed to gdk_pixbuf_animation_get_iter(), and must increase or remain unchanged each time gdk_pixbuf_animation_iter_get_pixbuf() 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 passcurrentTime
if you're doing something odd like playing the animation at double speed.If this function returns
FALSE
, there's no need to update the animation display, assuming the display had been rendered prior to advancing; ifTRUE
, you need to call gdk_pixbuf_animation_iter_get_pixbuf() and update the display with the new pixbuf.- Parameters:
currentTime
- current time- Returns:
TRUE
if the image may need updating
-
getDelayTime
public int getDelayTime()Gets the number of milliseconds the current pixbuf should be displayed, or -1 if the current pixbuf should be displayed forever.The
g_timeout_add()
function conveniently takes a timeout in milliseconds, so you can use a timeout to schedule the next update.Note that some formats, like GIF, might clamp the timeout values in the image file to avoid updates that are just too quick. The minimum timeout for GIF images is currently 20 milliseconds.
- Returns:
- delay time in milliseconds (thousandths of a second)
-
getPixbuf
Gets the current pixbuf which should be displayed.The pixbuf might not be the same size as the animation itself (gdk_pixbuf_animation_get_width(), gdk_pixbuf_animation_get_height()).
This pixbuf should be displayed for gdk_pixbuf_animation_iter_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 gdk_pixbuf_animation_iter_advance().
Copy the pixbuf to keep it (don't just add a reference), as it may get recycled as you advance the iterator.
- Returns:
- the pixbuf to be displayed
-
onCurrentlyLoadingFrame
public boolean onCurrentlyLoadingFrame()Used to determine how to respond to the area_updated signal onGdkPixbufLoader
when loading an animation.The
::area_updated
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 will need to redraw the screen for the updated area.- Returns:
TRUE
if the frame we're on is partially loaded, or the last frame
-
builder
APixbufAnimationIter.Builder
object constructs aPixbufAnimationIter
with the specified properties. Use the variousset...()
methods to set properties, and finish construction withPixbufAnimationIter.Builder.build()
.
-