// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Gdk {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	[StructLayout(LayoutKind.Sequential)]
	public partial struct PixbufFrame : IEquatable<PixbufFrame> {

		private IntPtr _pixbuf;
		public Gdk.Pixbuf Pixbuf {
			get {
				return GLib.Object.GetObject(_pixbuf) as Gdk.Pixbuf;
			}
			set {
				_pixbuf = value == null ? IntPtr.Zero : value.Handle;
			}
		}
		public int XOffset;
		public int YOffset;
		public int DelayTime;
		public int Elapsed;
		public Gdk.PixbufFrameAction Action;
		public bool NeedRecomposite;
		public bool BgTransparent;
		private IntPtr _composited;
		public Gdk.Pixbuf Composited {
			get {
				return GLib.Object.GetObject(_composited) as Gdk.Pixbuf;
			}
			set {
				_composited = value == null ? IntPtr.Zero : value.Handle;
			}
		}
		private IntPtr _revert;
		public Gdk.Pixbuf Revert {
			get {
				return GLib.Object.GetObject(_revert) as Gdk.Pixbuf;
			}
			set {
				_revert = value == null ? IntPtr.Zero : value.Handle;
			}
		}

		public static Gdk.PixbufFrame Zero = new Gdk.PixbufFrame ();

		public static Gdk.PixbufFrame New(IntPtr raw) {
			if (raw == IntPtr.Zero)
				return Gdk.PixbufFrame.Zero;
			return (Gdk.PixbufFrame) Marshal.PtrToStructure (raw, typeof (Gdk.PixbufFrame));
		}

		public bool Equals (PixbufFrame other)
		{
			return true && Pixbuf.Equals (other.Pixbuf) && XOffset.Equals (other.XOffset) && YOffset.Equals (other.YOffset) && DelayTime.Equals (other.DelayTime) && Elapsed.Equals (other.Elapsed) && Action.Equals (other.Action) && NeedRecomposite.Equals (other.NeedRecomposite) && BgTransparent.Equals (other.BgTransparent) && Composited.Equals (other.Composited) && Revert.Equals (other.Revert);
		}

		public override bool Equals (object other)
		{
			return other is PixbufFrame && Equals ((PixbufFrame) other);
		}

		public override int GetHashCode ()
		{
			return this.GetType ().FullName.GetHashCode () ^ Pixbuf.GetHashCode () ^ XOffset.GetHashCode () ^ YOffset.GetHashCode () ^ DelayTime.GetHashCode () ^ Elapsed.GetHashCode () ^ Action.GetHashCode () ^ NeedRecomposite.GetHashCode () ^ BgTransparent.GetHashCode () ^ Composited.GetHashCode () ^ Revert.GetHashCode ();
		}

		private static GLib.GType GType {
			get { return GLib.GType.Pointer; }
		}
#endregion
	}
}
