//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QFileIconProvider")]
    public class QFileIconProvider : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QFileIconProvider(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QFileIconProvider), this);
        }
        public enum IconType {
            Computer = 0,
            Desktop = 1,
            Trashcan = 2,
            Network = 3,
            Drive = 4,
            Folder = 5,
            File = 6,
        }
        public QFileIconProvider() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QFileIconProvider", "QFileIconProvider()", typeof(void));
        }
        [SmokeMethod("icon(QFileIconProvider::IconType) const")]
        public virtual QIcon Icon(QFileIconProvider.IconType type) {
            return (QIcon) interceptor.Invoke("icon$", "icon(QFileIconProvider::IconType) const", typeof(QIcon), typeof(QFileIconProvider.IconType), type);
        }
        [SmokeMethod("icon(const QFileInfo&) const")]
        public virtual QIcon Icon(QFileInfo info) {
            return (QIcon) interceptor.Invoke("icon#", "icon(const QFileInfo&) const", typeof(QIcon), typeof(QFileInfo), info);
        }
        [SmokeMethod("type(const QFileInfo&) const")]
        public virtual string type(QFileInfo info) {
            return (string) interceptor.Invoke("type#", "type(const QFileInfo&) const", typeof(string), typeof(QFileInfo), info);
        }
        ~QFileIconProvider() {
            interceptor.Invoke("~QFileIconProvider", "~QFileIconProvider()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QFileIconProvider", "~QFileIconProvider()", typeof(void));
        }
    }
}
