Author: danw
Date: 2005-04-01 09:54:12 -0500 (Fri, 01 Apr 2005)
New Revision: 42463

Added:
   trunk/gtk-sharp/gdk/PixbufAnimation.custom
Modified:
   trunk/gtk-sharp/ChangeLog
   trunk/gtk-sharp/doc/ChangeLog
   trunk/gtk-sharp/doc/en/Gdk/Pixbuf.xml
   trunk/gtk-sharp/doc/en/Gdk/PixbufAnimation.xml
   trunk/gtk-sharp/doc/en/Gdk/PixbufLoader.xml
   trunk/gtk-sharp/doc/en/Gtk/Image.xml
   trunk/gtk-sharp/gdk/Makefile.am
   trunk/gtk-sharp/gdk/Pixbuf.custom
   trunk/gtk-sharp/gdk/PixbufLoader.custom
   trunk/gtk-sharp/gtk/Image.custom
Log:
        * gdk/PixbufLoader.custom: Implement System.IO.Stream and
        resource-file constructors (using code formerly in Pixbuf.custom)

        * gdk/Pixbuf.custom: Redo the stream and resource ctors in terms
        of the PixbufLoader ones.

        * gdk/PixbufAnimation.custom: Add stream and resource ctors

        * gtk/Image.custom: Add stream and resource ctors


Modified: trunk/gtk-sharp/ChangeLog
===================================================================
--- trunk/gtk-sharp/ChangeLog   2005-04-01 14:27:58 UTC (rev 42462)
+++ trunk/gtk-sharp/ChangeLog   2005-04-01 14:54:12 UTC (rev 42463)
@@ -1,3 +1,15 @@
+2005-03-31  Dan Winship  <[EMAIL PROTECTED]>
+
+       * gdk/PixbufLoader.custom: Implement System.IO.Stream and
+       resource-file constructors (using code formerly in Pixbuf.custom)
+
+       * gdk/Pixbuf.custom: Redo the stream and resource ctors in terms
+       of the PixbufLoader ones.
+
+       * gdk/PixbufAnimation.custom: Add stream and resource ctors
+
+       * gtk/Image.custom: Add stream and resource ctors
+
 2005-03-31  Mike Kestner  <[EMAIL PROTECTED]>
 
        * glib/ManagedValue.cs : add null/NULL guarding to Copy, Free, 

Modified: trunk/gtk-sharp/doc/ChangeLog
===================================================================
--- trunk/gtk-sharp/doc/ChangeLog       2005-04-01 14:27:58 UTC (rev 42462)
+++ trunk/gtk-sharp/doc/ChangeLog       2005-04-01 14:54:12 UTC (rev 42463)
@@ -1,3 +1,10 @@
+2005-04-01  Dan Winship  <[EMAIL PROTECTED]>
+
+       * en/Gdk/Pixbuf.xml: 
+       * en/Gdk/PixbufAnimation.xml: 
+       * en/Gdk/PixbufLoader.xml: 
+       * en/Gtk/Image.xml: document new/updated stream/resource constructors
+
 2005-03-15  Dan Winship  <[EMAIL PROTECTED]>
 
        * en/Gtk/NodeStore.xml (AddNode):

Modified: trunk/gtk-sharp/doc/en/Gdk/Pixbuf.xml
===================================================================
--- trunk/gtk-sharp/doc/en/Gdk/Pixbuf.xml       2005-04-01 14:27:58 UTC (rev 
42462)
+++ trunk/gtk-sharp/doc/en/Gdk/Pixbuf.xml       2005-04-01 14:54:12 UTC (rev 
42463)
@@ -1215,10 +1215,14 @@
         <Parameter Name="resource" Type="System.String" />
       </Parameters>
       <Docs>
-        <summary>Loads a pixbuf from a resource string.</summary>
-        <param name="resource">a <see cref="T:System.String" /></param>
+        <summary>Loads a pixbuf from a resource file.</summary>
+        <param name="resource">the name of the resource</param>
         <returns>a <see cref="T:Gdk.Pixbuf" /></returns>
-        <remarks>TODO: Clarify.</remarks>
+        <remarks>
+           This loads a pixbuf from a resource in the calling assembly. This 
is equivalent to
+           using the <see cref="C:Gdk.Pixbuf(System.Reflection.Assembly, 
System.String)" />
+           constructor with a <see langword="null" /> assembly.
+       </remarks>
       </Docs>
     </Member>
     <Member MemberName=".ctor">

Modified: trunk/gtk-sharp/doc/en/Gdk/PixbufAnimation.xml
===================================================================
--- trunk/gtk-sharp/doc/en/Gdk/PixbufAnimation.xml      2005-04-01 14:27:58 UTC 
(rev 42462)
+++ trunk/gtk-sharp/doc/en/Gdk/PixbufAnimation.xml      2005-04-01 14:54:12 UTC 
(rev 42463)
@@ -245,5 +245,90 @@
         <remarks>To be added</remarks>
       </Docs>
     </Member>
+    <Member MemberName="LoadFromResource">
+      <MemberSignature Language="C#" Value="public static Gdk.PixbufAnimation 
LoadFromResource (string resource);" />
+      <MemberType>Method</MemberType>
+      <ReturnValue>
+        <ReturnType>Gdk.PixbufAnimation</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Loads a pixbuf from a resource file.</summary>
+        <param name="resource">the name of the resource</param>
+        <returns>a <see cref="T:Gdk.PixbufAnimation" /></returns>
+        <remarks>
+           This loads an animation from a resource in the calling assembly. 
This is equivalent to
+           using the <see 
cref="C:Gdk.PixbufAnimation(System.Reflection.Assembly, System.String)" />
+           constructor with a <see langword="null" /> assembly.
+       </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public PixbufAnimation 
(System.IO.Stream stream);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="stream" Type="System.IO.Stream" />
+      </Parameters>
+      <Docs>
+        <summary>Makes a new animation object from a <see 
cref="T:System.IO.Stream" />.</summary>
+        <param name="stream">a <see cref="T:System.IO.Stream" /></param>
+        <returns>a <see cref="T:Gdk.PixbufAnimation" /></returns>
+        <remarks>Useful for creating an animation from an image file that 
resides in memory.
+
+<example>
+            <code lang="C#">
+/* buffer containing an image */
+System.Byte[] buffer = new System.Byte[256];
+
+/* create a memory stream to the buffer */
+System.IO.MemoryStream memorystream = new System.IO.MemoryStream(buffer);    
+
+/* create an animation from the stream as if it was a file */
+Gdk.PixbufAnimation pba = new Gdk.PixbufAnimation(memorystream);
+  </code>
+          </example></remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public PixbufAnimation 
(System.Reflection.Assembly assembly, string resource);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="assembly" Type="System.Reflection.Assembly" />
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Constructor for images embedded in an assembly</summary>
+        <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> 
that contains the image.  
+<para>
+If the value is <see langword="null" />,  the image will be looked up on the 
calling assembly.</para></param>
+        <param name="resource">The name given as the resource in the 
assembly</param>
+        <returns>The <see cref="T:Gdk.PixbufAnimation" /> created from the 
resource stream</returns>
+        <remarks>
+          <para>
+   This method is used to construct a <see cref="T:Gdk.PixbufAnimation" /> 
from an embedded resource in an assembly. 
+</para>
+          <para>
+   Typically this is used when application developers want to distribute 
images in a single executable.
+</para>
+
+If the assembly parameter is <see langword="null" />,  the image will be 
looked up on the calling assembly.
+
+<para>
+For example:
+</para><example>
+            <code lang="C#">
+Gdk.PixbufAnimation p = new PixbufAnimation (null, "anim.gif");
+  </code>
+          </example><para>Compile with:</para><example>
+            <code lang="Compilation">
+mcs -resource:anim.gif sample.cs
+  </code>
+          </example></remarks>
+      </Docs>
+    </Member>
   </Members>
 </Type>
\ No newline at end of file

Modified: trunk/gtk-sharp/doc/en/Gdk/PixbufLoader.xml
===================================================================
--- trunk/gtk-sharp/doc/en/Gdk/PixbufLoader.xml 2005-04-01 14:27:58 UTC (rev 
42462)
+++ trunk/gtk-sharp/doc/en/Gdk/PixbufLoader.xml 2005-04-01 14:54:12 UTC (rev 
42463)
@@ -450,5 +450,58 @@
         <remarks>To be added</remarks>
       </Docs>
     </Member>
+    <Member MemberName="LoadFromResource">
+      <MemberSignature Language="C#" Value="public static Gdk.PixbufLoader 
LoadFromResource (string resource);" />
+      <MemberType>Method</MemberType>
+      <ReturnValue>
+        <ReturnType>Gdk.PixbufLoader</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Loads a pixbuf from a resource file.</summary>
+        <param name="resource">the name of the resource</param>
+        <returns>a <see cref="T:Gdk.PixbufLoader" /></returns>
+        <remarks>
+           This creates a pixbuf loader to load from a resource in the calling 
assembly.
+           This is equivalent to using the
+           <see cref="C:Gdk.PixbufLoader(System.Reflection.Assembly, 
System.String)" />
+           constructor with a <see langword="null" /> assembly.
+       </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public PixbufLoader 
(System.IO.Stream stream);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="stream" Type="System.IO.Stream" />
+      </Parameters>
+      <Docs>
+        <summary>Loads a Pixbuf from a <see cref="T:System.IO.Stream" 
/>.</summary>
+        <param name="stream">a <see cref="T:System.IO.Stream" /></param>
+        <returns>a <see cref="T:Gdk.PixbufLoader" /></returns>
+        <remarks>See also <see cref="C:Gdk.Pixbuf(System.IO.Stream)" 
/></remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public PixbufLoader 
(System.Reflection.Assembly assembly, string resource);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="assembly" Type="System.Reflection.Assembly" />
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Loads a Pixbuf embedded in an assembly</summary>
+        <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> 
that contains the image.  
+<para>
+If the value is <see langword="null" />, the image will be looked up on the 
calling assembly.</para></param>
+        <param name="resource">The name given as the resource in the 
assembly</param>
+        <returns>a <see cref="T:Gdk.PixbufLoader" /> for the resource 
stream</returns>
+        <remarks>See also <see 
cref="C:Gdk.Pixbuf(System.Reflection.Assembly,System.String)" /></remarks>
+      </Docs>
+    </Member>
   </Members>
-</Type>
+</Type>
\ No newline at end of file

Modified: trunk/gtk-sharp/doc/en/Gtk/Image.xml
===================================================================
--- trunk/gtk-sharp/doc/en/Gtk/Image.xml        2005-04-01 14:27:58 UTC (rev 
42462)
+++ trunk/gtk-sharp/doc/en/Gtk/Image.xml        2005-04-01 14:54:12 UTC (rev 
42463)
@@ -445,7 +445,7 @@
       </ReturnValue>
       <Docs>
         <summary>The type of representation being used by the 
-         <see cref="T:Gtk.Image"/>
+         <see cref="T:Gtk.Image" />
          to store image data. If the Image has no image data,
          the return value will be <see cref="P:Gtk.ImageType.Empty" />.
        </summary>
@@ -580,10 +580,11 @@
         <Parameter Name="mask" Type="Gdk.Pixmap" />
       </Parameters>
       <Docs>
-        <summary>Same functionality as <see 
cref="M:Gtk.Image.SetFromImage"/>.</summary>
+        <summary>Same functionality as <see cref="M:Gtk.Image.SetFromImage" 
/>.</summary>
         <param name="val">a <see cref="T:Gdk.Image" /></param>
         <param name="mask">a <see cref="T:Gdk.Pixmap" /></param>
-        <remarks></remarks>
+        <remarks>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="Get">
@@ -598,15 +599,15 @@
       </Parameters>
       <Docs>
         <summary>
-         Gets the <see cref="T:Gdk.Image"/> and mask being 
-         displayed by the <see cref="T:Gtk.Image"/>.
+         Gets the <see cref="T:Gdk.Image" /> and mask being 
+         displayed by the <see cref="T:Gtk.Image" />.
        </summary>
         <param name="val">a <see cref="T:Gdk.Image" /></param>
         <param name="mask">a <see cref="T:Gdk.Pixmap" /></param>
         <remarks>
          The storage type of the image must be 
-         <see cref="T:Gtk.ImageType.Empty"/>.
-         or <see cref="T:Gtk.ImageType.Image"/>.
+         <see cref="T:Gtk.ImageType.Empty" />.
+         or <see cref="T:Gtk.ImageType.Image" />.
          (see <see cref="P:Gtk.Image.StorageType" />).
        </remarks>
       </Docs>
@@ -683,5 +684,67 @@
         </remarks>
       </Docs>
     </Member>
+    <Member MemberName="LoadFromResource">
+      <MemberSignature Language="C#" Value="public static Gtk.Image 
LoadFromResource (string resource);" />
+      <MemberType>Method</MemberType>
+      <ReturnValue>
+        <ReturnType>Gtk.Image</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Loads an image from a resource file.</summary>
+        <param name="resource">the name of the resource</param>
+        <returns>a <see cref="T:Gtk.Image" /></returns>
+       <remarks>
+           This load an image from a resource in the calling assembly. This is
+           equivalent to using the
+           <see cref="C:Gtk.Image(System.Reflection.Assembly, System.String)" 
/>
+           constructor with a <see langword="null" /> assembly.
+       </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public Image (System.IO.Stream 
stream);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="stream" Type="System.IO.Stream" />
+      </Parameters>
+      <Docs>
+        <summary>Loads an image from a <see cref="T:System.IO.Stream" 
/>.</summary>
+        <param name="stream">a <see cref="T:System.IO.Stream" /></param>
+        <returns>a <see cref="T:Gtk.Image" /></returns>
+        <remarks>
+           This is equivalent to calling <see 
cref="C:Gdk.Pixbuf(System.IO.Stream)" />
+           or <see cref="C:Gdk.PixbufAnimation(System.IO.Stream)" /> and then 
creating
+           an <see cref="T:Gtk.Image" /> from the resulting pixbuf.
+       </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public Image 
(System.Reflection.Assembly assembly, string resource);" />
+      <MemberType>Constructor</MemberType>
+      <ReturnValue />
+      <Parameters>
+        <Parameter Name="assembly" Type="System.Reflection.Assembly" />
+        <Parameter Name="resource" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <summary>Loads an image embedded in an assembly</summary>
+        <param name="assembly">The <see cref="T:System.Reflection.Assembly" /> 
that contains the image.  
+<para>
+If the value is <see langword="null" />, the image will be looked up on the 
calling assembly.</para></param>
+        <param name="resource">The name given as the resource in the 
assembly</param>
+        <returns>a <see cref="T:Gtk.Image" /></returns>
+        <remarks>
+           This is equivalent to calling
+           <see cref="C:Gdk.Pixbuf(System.Reflection.Assembly,System.String)" 
/> or
+           <see 
cref="C:Gdk.PixbufAnimation(System.Reflection.Assembly,System.String)" />
+           and then creating an <see cref="T:Gtk.Image" /> from the resulting 
pixbuf.
+       </remarks>
+      </Docs>
+    </Member>
   </Members>
-</Type>
+</Type>
\ No newline at end of file

Modified: trunk/gtk-sharp/gdk/Makefile.am
===================================================================
--- trunk/gtk-sharp/gdk/Makefile.am     2005-04-01 14:27:58 UTC (rev 42462)
+++ trunk/gtk-sharp/gdk/Makefile.am     2005-04-01 14:54:12 UTC (rev 42463)
@@ -41,6 +41,7 @@
        Keymap.custom           \
        Pixmap.custom           \
        Pixbuf.custom           \
+       PixbufAnimation.custom  \
        PixbufLoader.custom     \
        Pixdata.custom          \
        Point.custom            \

Modified: trunk/gtk-sharp/gdk/Pixbuf.custom
===================================================================
--- trunk/gtk-sharp/gdk/Pixbuf.custom   2005-04-01 14:27:58 UTC (rev 42462)
+++ trunk/gtk-sharp/gdk/Pixbuf.custom   2005-04-01 14:54:12 UTC (rev 42463)
@@ -92,54 +92,20 @@
                        gdk_pixbuf_render_to_drawable_alpha(Handle, 
drawable.Handle, src_x, src_y, dest_x, dest_y, width, height, (int) alpha_mode, 
alpha_threshold, (int) dither, x_dither, y_dither);
                }
 
-               [DllImport("libgobject-2.0-0.dll")]
-               static extern void g_object_ref (IntPtr handle);
+               public Pixbuf (System.IO.Stream stream) : base (new 
PixbufLoader (stream).PixbufHandle) {}
 
-               private void LoadFromStream (System.IO.Stream input)
-               {
-                       PixbufLoader loader = new PixbufLoader ();
-                       byte [] buffer = new byte [8192];
-                       int n;
-
-                       while ((n = input.Read (buffer, 0, 8192)) != 0)
-                               loader.Write (buffer, (uint) n);
-               
-                       loader.Close ();
-                       Raw = loader.PixbufHandle;
-                       if (Raw == IntPtr.Zero)
-                               throw new ArgumentException ("Unable to load 
pixbuf from stream");
-                       g_object_ref (Raw);
-               }
-               
-               public Pixbuf (System.IO.Stream stream) : base (IntPtr.Zero)
-               {
-                       LoadFromStream (stream);
-               }
-
                public Pixbuf (System.Reflection.Assembly assembly, string 
resource) : base (IntPtr.Zero)
                {
                        if (assembly == null)
                                assembly = 
System.Reflection.Assembly.GetCallingAssembly ();
-
-                       if (resource == null)
-                               throw new ArgumentNullException ("resource");
-
-                       System.IO.Stream s = assembly.GetManifestResourceStream 
(resource);
-                       if (s == null)
-                               throw new ArgumentException ("resource must be 
a valid resource name of 'assembly'.");
-
-                       LoadFromStream (s);
+                       Raw = new PixbufLoader (assembly, 
resource).PixbufHandle;
                }
 
                static public Pixbuf LoadFromResource (string resource)
                {
-                       if (resource == null)
-                               throw new ArgumentNullException ("resource");
-
                        return new Pixbuf 
(System.Reflection.Assembly.GetCallingAssembly (), resource);
                }
 
-               
                [DllImport("libgdk_pixbuf-2.0-0.dll")]
                static extern IntPtr gdk_pixbuf_scale_simple(IntPtr raw, int 
dest_width, int dest_height, int interp_type);
 

Added: trunk/gtk-sharp/gdk/PixbufAnimation.custom
===================================================================
--- trunk/gtk-sharp/gdk/PixbufAnimation.custom  2005-04-01 14:27:58 UTC (rev 
42462)
+++ trunk/gtk-sharp/gdk/PixbufAnimation.custom  2005-04-01 14:54:12 UTC (rev 
42463)
@@ -0,0 +1,33 @@
+// PixbufAnimation.custom - GdkPixbufAnimation class customizations
+//
+// Copyright (c) 2005 Novell, Inc.
+//
+// This code is inserted after the automatically generated code.
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of version 2 of the Lesser GNU General 
+// Public License as published by the Free Software Foundation.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program; if not, write to the
+// Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+// Boston, MA 02111-1307, USA.
+
+               public PixbufAnimation (System.IO.Stream stream) : base (new 
PixbufLoader (stream).AnimationHandle) {}
+
+               public PixbufAnimation (System.Reflection.Assembly assembly, 
string resource) : base (IntPtr.Zero)
+               {
+                       if (assembly == null)
+                               assembly = 
System.Reflection.Assembly.GetCallingAssembly ();
+                       Raw = new PixbufLoader (assembly, 
resource).AnimationHandle;
+               }
+
+               static public PixbufAnimation LoadFromResource (string resource)
+               {
+                       return new PixbufAnimation 
(System.Reflection.Assembly.GetCallingAssembly (), resource);
+               }

Modified: trunk/gtk-sharp/gdk/PixbufLoader.custom
===================================================================
--- trunk/gtk-sharp/gdk/PixbufLoader.custom     2005-04-01 14:27:58 UTC (rev 
42462)
+++ trunk/gtk-sharp/gdk/PixbufLoader.custom     2005-04-01 14:54:12 UTC (rev 
42463)
@@ -21,14 +21,60 @@
 // Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 // Boston, MA 02111-1307, USA.
 
+               [DllImport("libgobject-2.0-0.dll")]
+               static extern IntPtr g_object_ref (IntPtr handle);
+
                internal IntPtr PixbufHandle {
                        get {
-                               return gdk_pixbuf_loader_get_pixbuf (Handle);
+                               return g_object_ref 
(gdk_pixbuf_loader_get_pixbuf (Handle));
                        }
                }
 
+               internal IntPtr AnimationHandle {
+                       get {
+                               return g_object_ref 
(gdk_pixbuf_loader_get_animation (Handle));
+                       }
+               }
+
                public bool Write (byte[] bytes)
                {
                        return this.Write (bytes, (uint) bytes.Length);
                }
 
+               private void LoadFromStream (System.IO.Stream input)
+               {
+                       byte [] buffer = new byte [8192];
+                       int n;
+
+                       while ((n = input.Read (buffer, 0, 8192)) != 0)
+                               Write (buffer, (uint) n);
+                       Close ();
+               }
+               
+               public PixbufLoader (System.IO.Stream stream) : this ()
+               {
+                       LoadFromStream (stream);
+               }
+
+               public PixbufLoader (System.Reflection.Assembly assembly, 
string resource) : this ()
+               {
+                       if (assembly == null)
+                               assembly = 
System.Reflection.Assembly.GetCallingAssembly ();
+
+                       if (resource == null)
+                               throw new ArgumentNullException ("resource");
+
+                       System.IO.Stream s = assembly.GetManifestResourceStream 
(resource);
+                       if (s == null)
+                               throw new ArgumentException ("'" + resource + 
"' is not a valid resource name of assembly '" + assembly + "'.");
+
+                       LoadFromStream (s);
+               }
+
+               static public PixbufLoader LoadFromResource (string resource)
+               {
+                       if (resource == null)
+                               throw new ArgumentNullException ("resource");
+
+                       return new PixbufLoader 
(System.Reflection.Assembly.GetCallingAssembly (), resource);
+               }

Modified: trunk/gtk-sharp/gtk/Image.custom
===================================================================
--- trunk/gtk-sharp/gtk/Image.custom    2005-04-01 14:27:58 UTC (rev 42462)
+++ trunk/gtk-sharp/gtk/Image.custom    2005-04-01 14:54:12 UTC (rev 42463)
@@ -54,3 +54,37 @@
                        GLib.Marshaller.Free (native);
                }
 
+               void LoadFromStream (System.IO.Stream stream)
+               {
+                       try {
+                               Gdk.PixbufAnimation anim = new 
Gdk.PixbufAnimation (stream);
+                               if (anim.IsStaticImage)
+                                       Pixbuf = anim.StaticImage;
+                               else
+                                       PixbufAnimation = anim;
+                       } catch {
+                               Stock = Gtk.Stock.MissingImage;
+                       }
+               }
+
+               public Image (System.IO.Stream stream) : this ()
+               {
+                       LoadFromStream (stream);
+               }
+
+               public Image (System.Reflection.Assembly assembly, string 
resource) : this ()
+               {
+                       if (assembly == null)
+                               assembly = 
System.Reflection.Assembly.GetCallingAssembly ();
+
+                       System.IO.Stream s = assembly.GetManifestResourceStream 
(resource);
+                       if (s == null)
+                               throw new ArgumentException ("'" + resource + 
"' is not a valid resource name of assembly '" + assembly + "'.");
+
+                       LoadFromStream (s);
+               }
+
+               static public Image LoadFromResource (string resource)
+               {
+                       return new Image 
(System.Reflection.Assembly.GetCallingAssembly (), resource);
+               }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to