GtkSharp/doc/en/Gdk/PixbufLoader.xml
Mike Kestner ea489c2353 2005-01-24 Mike Kestner <mkestner@novell.com>
* gda/Makefile.am : add new custom.
	* gda/XmlConnection.custom : add backcompat static ctor.
	* generator/ClassBase.cs : refactor lookup logic to here from Ctor
	and improve the collision resolution.
	* generator/Ctor.cs : refactor to use MethodBase.
	* generator/Makefile.am : add new file.
	* generator/MethodBase.cs : new base class for ctors and methods.
	* generator/Method.cs : refactor to use MethodBase.
	* generator/StructBase.cs : move some logic from here to Ctor.
	* gnome/CanvasPathDef.custom : add backcompat static ctor.
	* gnome/GPPath.custom : add backcompat static ctor.
	* gnome/Makefile.am : add new custom.
	* gtk/Gtk.metadata : mark a colliding Button ctor shared.

svn path=/trunk/gtk-sharp/; revision=39431
2005-01-24 18:25:02 +00:00

455 lines
18 KiB
XML

<Type Name="PixbufLoader" FullName="Gdk.PixbufLoader">
<TypeSignature Language="C#" Value="public class PixbufLoader : GLib.Object, IWrapper, IDisposable" Maintainer="auto" />
<AssemblyInfo>
<AssemblyName>gdk-sharp</AssemblyName>
<AssemblyPublicKey>
</AssemblyPublicKey>
<AssemblyVersion>0.0.0.0</AssemblyVersion>
<AssemblyCulture>neutral</AssemblyCulture>
<Attributes />
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the <link location="node:gtk-sharp/programming/threads">Gtk# Thread Programming</link> for details.</ThreadSafetyStatement>
<Docs>
<summary>
<para>PixbufLoader is a 'passive' pixbuf loader. It's not actively read pix buf data, but 'listen' for incoming data instead. It's useful in a case where you want to read the image data in small chunks. Typical use of PixbufLoader is when you want to read a very large image data or reading image from a slow media (such as a slow network connection).</para>
<para>
You can see the "Images" section of GtkDemo to learn how to use PixbufLoader.
</para>
</summary>
<remarks>
<example>
<code lang="C#">
using System;
using System.IO;
using Gtk;
using Gdk;
namespace GtkDemo
{
public class PixbufLoaderSample : Gtk.Window
{
static Gdk.PixbufLoader pixbufLoader;
private uint timeout_id;
private static Gtk.Image progressiveImage;
private VBox vbox;
BinaryReader imageStream;
static void Main ()
{
Application.Init ();
new PixbufLoaderSample ();
Application.Run ();
}
public PixbufLoaderSample () : base ("images")
{
this.DeleteEvent += new DeleteEventHandler (WindowDelete);
this.BorderWidth = 8;
vbox = new VBox (false, 8);
vbox.BorderWidth = 8;
this.Add (vbox);
Label label = new Gtk.Label ("Progressive image loading");
label.UseMarkup = true;
vbox.PackStart (label);
Gtk.Frame frame = new Gtk.Frame ();
frame.ShadowType = ShadowType.In;
Alignment alignment = new Alignment (0.5f, 0.5f, 0f, 0f);
alignment.Add (frame);
vbox.PackStart (alignment, false, false, 0);
// Create an empty image for now; the progressive loader
// will create the pixbuf and fill it in.
progressiveImage = new Gtk.Image ();
frame.Add (progressiveImage);
StartProgressiveLoading ();
this.ShowAll ();
}
private void WindowDelete (object o, DeleteEventArgs args)
{
this.Hide ();
this.Destroy ();
args.RetVal = true;
}
private void StartProgressiveLoading ()
{
/* This is obviously totally contrived (we slow down loading
* on purpose to show how incremental loading works).
* The real purpose of incremental loading is the case where
* you are reading data from a slow source such as the network.
* The timeout simply simulates a slow data source by inserting
* pauses in the reading process.
*/
timeout_id = GLib.Timeout.Add (150, new GLib.TimeoutHandler (ProgressiveTimeout));
}
private bool ProgressiveTimeout ()
{
if (imageStream == null) {
// note you need to provide your own image
// at that location to run this sample
imageStream = new BinaryReader (new StreamReader ("images/alphatest.png").BaseStream);
pixbufLoader = new Gdk.PixbufLoader ();
pixbufLoader.AreaPrepared += new EventHandler (ProgressivePreparedCallback);
pixbufLoader.AreaUpdated += new AreaUpdatedHandler (ProgressiveUpdatedCallback);
}
if (imageStream.PeekChar () != -1) {
byte[] bytes = imageStream.ReadBytes (256);
pixbufLoader.Write (bytes, (uint) bytes.Length);
return true; // leave the timeout active
}
else {
imageStream.Close ();
return false; // removes the timeout
}
}
static void ProgressivePreparedCallback (object obj, EventArgs args)
{
Gdk.Pixbuf pixbuf = pixbufLoader.Pixbuf;
pixbuf.Fill (0xaaaaaaff);
progressiveImage.FromPixbuf = pixbuf;
}
static void ProgressiveUpdatedCallback (object obj, AreaUpdatedArgs args)
{
progressiveImage.QueueDraw ();
}
}
}
</code>
</example>
</remarks>
</Docs>
<Base>
<BaseTypeName>GLib.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>GLib.IWrapper</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Attributes />
<Members>
<Member MemberName="Write">
<MemberSignature Language="C#" Value="public bool Write (byte [] buf, uint count);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="buf" Type="System.Byte []" />
<Parameter Name="count" Type="System.UInt32" />
</Parameters>
<Docs>
<summary>Parses the next count bytes of image data from buffer buf.</summary>
<param name="buf">array of bytes buffer to parse.</param>
<param name="count">number of bytes to parse.</param>
<returns>returns true if data was parsed and loaded succesfully.</returns>
<remarks>
<para>If the return value is false, the PixbufLoader will be closed.</para>
</remarks>
</Docs>
</Member>
<Member MemberName="Close">
<MemberSignature Language="C#" Value="public bool Close ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Closes the loader.</summary>
<returns>returns true on successful close and false on error.</returns>
<remarks>During the close, PixbufLoader will parse any data that has not been parsed. If the data is incomplete or corrupted, this method will return false.</remarks>
</Docs>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="protected override void Finalize ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Disposes the resources associated with the object.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public PixbufLoader (IntPtr raw);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="raw" Type="System.IntPtr" />
</Parameters>
<Docs>
<summary>Internal constructor</summary>
<param name="raw">Pointer to the C object.</param>
<returns>An instance of PixbufLoader, wrapping the C object.</returns>
<remarks>
<para>This is an internal constructor, and should not be used by user code.</para>
</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public PixbufLoader ();" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters />
<Docs>
<summary>Default constructor</summary>
<returns>an object of type <see cref="T:Gdk.PixbufLoader" /></returns>
<remarks />
</Docs>
</Member>
<Member MemberName="Pixbuf">
<MemberSignature Language="C#" Value="public Gdk.Pixbuf Pixbuf { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gdk.Pixbuf</ReturnType>
</ReturnValue>
<Docs>
<summary>The Pixbuf that is being loaded.</summary>
<returns>an object of type <see cref="T:Gdk.Pixbuf" /></returns>
<remarks />
</Docs>
</Member>
<Member MemberName="Animation">
<MemberSignature Language="C#" Value="public Gdk.PixbufAnimation Animation { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gdk.PixbufAnimation</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added</summary>
<returns>an object of type <see cref="T:Gdk.PixbufAnimation" /></returns>
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName="AreaPrepared">
<MemberSignature Language="C#" Value="public event EventHandler AreaPrepared;" />
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>System.EventHandler</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Emitted when the area of the PixbufLoader is prepared.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="AreaUpdated">
<MemberSignature Language="C#" Value="public event Gdk.AreaUpdatedHandler AreaUpdated;" />
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>Gdk.AreaUpdatedHandler</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Emitted when the area of the PixbufLoader is updated with data.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Closed">
<MemberSignature Language="C#" Value="public event EventHandler Closed;" />
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>System.EventHandler</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Emitted when the PixbufLoader is closed.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="Format">
<MemberSignature Language="C#" Value="public Gdk.PixbufFormat Format { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>Gdk.PixbufFormat</ReturnType>
</ReturnValue>
<Docs>
<summary>To be added</summary>
<returns>a <see cref="T:Gdk.PixbufFormat" /></returns>
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName="SizePrepared">
<MemberSignature Language="C#" Value="public event Gdk.SizePreparedHandler SizePrepared;" />
<MemberType>Event</MemberType>
<ReturnValue>
<ReturnType>Gdk.SizePreparedHandler</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Emitted when the PixbufLoader has prepared its size.</summary>
<remarks />
</Docs>
</Member>
<Member MemberName="SetSize">
<MemberSignature Language="C#" Value="public void SetSize (int width, int height);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="width" Type="System.Int32" />
<Parameter Name="height" Type="System.Int32" />
</Parameters>
<Docs>
<summary>Set the size of the image that will be loaded.</summary>
<param name="width">a <see cref="T:System.Int32" /></param>
<param name="height">a <see cref="T:System.Int32" /></param>
<remarks />
</Docs>
</Member>
<Member MemberName="GType">
<MemberSignature Language="C#" Value="public static GLib.GType GType { get; };" />
<MemberType>Property</MemberType>
<ReturnValue>
<ReturnType>GLib.GType</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>GType Property.</summary>
<returns>a <see cref="T:GLib.GType" /></returns>
<remarks>Returns the native <see cref="T:GLib.GType" /> value for <see cref="T:Gdk.PixbufLoader" />.</remarks>
</Docs>
</Member>
<Member MemberName="OnClosed">
<MemberSignature Language="C#" Value="protected virtual void OnClosed ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Default handler for the <see cref="M:Gdk.PixbufLoader.Closed" /> event.</summary>
<remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gdk.PixbufLoader.Closed" /> event.</remarks>
</Docs>
</Member>
<Member MemberName="OnSizePrepared">
<MemberSignature Language="C#" Value="protected virtual void OnSizePrepared (int width, int height);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="width" Type="System.Int32" />
<Parameter Name="height" Type="System.Int32" />
</Parameters>
<Docs>
<summary>Default handler for the <see cref="M:Gdk.PixbufLoader.SizePrepared" /> event.</summary>
<param name="width">a <see cref="T:System.Int32" /></param>
<param name="height">a <see cref="T:System.Int32" /></param>
<remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gdk.PixbufLoader.SizePrepared" /> event.</remarks>
</Docs>
</Member>
<Member MemberName="OnAreaUpdated">
<MemberSignature Language="C#" Value="protected virtual void OnAreaUpdated (int x, int y, int width, int height);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="x" Type="System.Int32" />
<Parameter Name="y" Type="System.Int32" />
<Parameter Name="width" Type="System.Int32" />
<Parameter Name="height" Type="System.Int32" />
</Parameters>
<Docs>
<summary>Default handler for the <see cref="M:Gdk.PixbufLoader.AreaUpdated" /> event.</summary>
<param name="x">a <see cref="T:System.Int32" /></param>
<param name="y">a <see cref="T:System.Int32" /></param>
<param name="width">a <see cref="T:System.Int32" /></param>
<param name="height">a <see cref="T:System.Int32" /></param>
<remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gdk.PixbufLoader.AreaUpdated" /> event.</remarks>
</Docs>
</Member>
<Member MemberName="OnAreaPrepared">
<MemberSignature Language="C#" Value="protected virtual void OnAreaPrepared ();" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Default handler for the <see cref="M:Gdk.PixbufLoader.AreaPrepared" /> event.</summary>
<remarks>Override this method in a subclass to provide a default handler for the <see cref="M:Gdk.PixbufLoader.AreaPrepared" /> event.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="protected PixbufLoader (GLib.GType gtype);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="gtype" Type="GLib.GType" />
</Parameters>
<Docs>
<summary>Protected Constructor.</summary>
<param name="gtype">a <see cref="T:GLib.GType" /></param>
<returns>a <see cref="T:Gdk.PixbufLoader" /></returns>
<remarks>Chain to this constructor if you have manually registered a native <see cref="T:GLib.GType" /> value for your subclass.</remarks>
</Docs>
</Member>
<Member MemberName="Write">
<MemberSignature Language="C#" Value="public bool Write (byte [] bytes);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="bytes" Type="System.Byte[]" />
</Parameters>
<Docs>
<summary>Parses the bytes into the image data.</summary>
<param name="bytes">a <see cref="T:System.Byte" /></param>
<returns>a <see cref="T:System.Boolean" /></returns>
<remarks>This is an overload to <see cref="M:Gdk.PixbufLoader.Write(System.Byte[],System.UInt32)" />, which determines the length automatically.</remarks>
</Docs>
</Member>
<Member MemberName="NewWithType">
<MemberSignature Language="C#" Value="public static Gdk.PixbufLoader NewWithType (string image_type);" />
<MemberType>Method</MemberType>
<ReturnValue>
<ReturnType>Gdk.PixbufLoader</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="image_type" Type="System.String" />
</Parameters>
<Docs>
<summary>To be added</summary>
<param name="image_type">a <see cref="T:System.String" /></param>
<returns>a <see cref="T:Gdk.PixbufLoader" /></returns>
<remarks>To be added</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public PixbufLoader (string mime_type);" />
<MemberType>Constructor</MemberType>
<ReturnValue />
<Parameters>
<Parameter Name="mime_type" Type="System.String" />
</Parameters>
<Docs>
<summary>To be added</summary>
<param name="mime_type">a <see cref="T:System.String" /></param>
<returns>a <see cref="T:Gdk.PixbufLoader" /></returns>
<remarks>To be added</remarks>
</Docs>
</Member>
</Members>
</Type>