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

namespace Gtk {

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

#region Autogenerated code
	public partial class Icon : GLib.Opaque {

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_icon_size_from_name(IntPtr name);
		static d_gtk_icon_size_from_name gtk_icon_size_from_name = FuncLoader.LoadFunction<d_gtk_icon_size_from_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_from_name"));

		[Obsolete]
		public static Gtk.IconSize SizeFromName(string name) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			int raw_ret = gtk_icon_size_from_name(native_name);
			Gtk.IconSize ret = (Gtk.IconSize) raw_ret;
			GLib.Marshaller.Free (native_name);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate IntPtr d_gtk_icon_size_get_name(int size);
		static d_gtk_icon_size_get_name gtk_icon_size_get_name = FuncLoader.LoadFunction<d_gtk_icon_size_get_name>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_get_name"));

		[Obsolete]
		public static string SizeGetName(Gtk.IconSize size) {
			IntPtr raw_ret = gtk_icon_size_get_name((int) size);
			string ret = GLib.Marshaller.Utf8PtrToString (raw_ret);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_icon_size_lookup(int size, out int width, out int height);
		static d_gtk_icon_size_lookup gtk_icon_size_lookup = FuncLoader.LoadFunction<d_gtk_icon_size_lookup>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_lookup"));

		public static bool SizeLookup(Gtk.IconSize size, out int width, out int height) {
			bool raw_ret = gtk_icon_size_lookup((int) size, out width, out height);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate bool d_gtk_icon_size_lookup_for_settings(IntPtr settings, int size, out int width, out int height);
		static d_gtk_icon_size_lookup_for_settings gtk_icon_size_lookup_for_settings = FuncLoader.LoadFunction<d_gtk_icon_size_lookup_for_settings>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_lookup_for_settings"));

		[Obsolete]
		public static bool SizeLookupForSettings(Gtk.Settings settings, Gtk.IconSize size, out int width, out int height) {
			bool raw_ret = gtk_icon_size_lookup_for_settings(settings == null ? IntPtr.Zero : settings.Handle, (int) size, out width, out height);
			bool ret = raw_ret;
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate int d_gtk_icon_size_register(IntPtr name, int width, int height);
		static d_gtk_icon_size_register gtk_icon_size_register = FuncLoader.LoadFunction<d_gtk_icon_size_register>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_register"));

		[Obsolete]
		public static Gtk.IconSize SizeRegister(string name, int width, int height) {
			IntPtr native_name = GLib.Marshaller.StringToPtrGStrdup (name);
			int raw_ret = gtk_icon_size_register(native_name, width, height);
			Gtk.IconSize ret = (Gtk.IconSize) raw_ret;
			GLib.Marshaller.Free (native_name);
			return ret;
		}

		[UnmanagedFunctionPointer (CallingConvention.Cdecl)]
		delegate void d_gtk_icon_size_register_alias(IntPtr alias, int target);
		static d_gtk_icon_size_register_alias gtk_icon_size_register_alias = FuncLoader.LoadFunction<d_gtk_icon_size_register_alias>(FuncLoader.GetProcAddress(GLibrary.Load(Library.Gtk), "gtk_icon_size_register_alias"));

		[Obsolete]
		public static void SizeRegisterAlias(string alias, Gtk.IconSize target) {
			IntPtr native_alias = GLib.Marshaller.StringToPtrGStrdup (alias);
			gtk_icon_size_register_alias(native_alias, (int) target);
			GLib.Marshaller.Free (native_alias);
		}

		public Icon(IntPtr raw) : base(raw) {}


		// Internal representation of the wrapped structure ABI.
		static GLib.AbiStruct _abi_info = null;
		static public unsafe GLib.AbiStruct abi_info {
			get {
				if (_abi_info == null)
					_abi_info = new GLib.AbiStruct (new List<GLib.AbiField>{ 
					});

				return _abi_info;
			}
		}


		// End of the ABI representation.

#endregion
	}
}
