//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QTreeWidgetItemIterator")]
    public class QTreeWidgetItemIterator : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QTreeWidgetItemIterator(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QTreeWidgetItemIterator), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QTreeWidgetItemIterator() {
            staticInterceptor = new SmokeInvocation(typeof(QTreeWidgetItemIterator), null);
        }
        public enum IteratorFlag {
            All = 0x00000000,
            Hidden = 0x00000001,
            NotHidden = 0x00000002,
            Selected = 0x00000004,
            Unselected = 0x00000008,
            Selectable = 0x00000010,
            NotSelectable = 0x00000020,
            DragEnabled = 0x00000040,
            DragDisabled = 0x00000080,
            DropEnabled = 0x00000100,
            DropDisabled = 0x00000200,
            HasChildren = 0x00000400,
            NoChildren = 0x00000800,
            Checked = 0x00001000,
            NotChecked = 0x00002000,
            Enabled = 0x00004000,
            Disabled = 0x00008000,
            Editable = 0x00010000,
            NotEditable = 0x00020000,
            UserFlag = 0x01000000,
        }
        public QTreeWidgetItemIterator(QTreeWidgetItemIterator it) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QTreeWidgetItemIterator#", "QTreeWidgetItemIterator(const QTreeWidgetItemIterator&)", typeof(void), typeof(QTreeWidgetItemIterator), it);
        }
        public QTreeWidgetItemIterator(QTreeWidget widget, uint flags) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QTreeWidgetItemIterator#$", "QTreeWidgetItemIterator(QTreeWidget*, QTreeWidgetItemIterator::IteratorFlags)", typeof(void), typeof(QTreeWidget), widget, typeof(uint), flags);
        }
        public QTreeWidgetItemIterator(QTreeWidget widget) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QTreeWidgetItemIterator#", "QTreeWidgetItemIterator(QTreeWidget*)", typeof(void), typeof(QTreeWidget), widget);
        }
        public QTreeWidgetItemIterator(QTreeWidgetItem item, uint flags) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QTreeWidgetItemIterator#$", "QTreeWidgetItemIterator(QTreeWidgetItem*, QTreeWidgetItemIterator::IteratorFlags)", typeof(void), typeof(QTreeWidgetItem), item, typeof(uint), flags);
        }
        public QTreeWidgetItemIterator(QTreeWidgetItem item) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QTreeWidgetItemIterator#", "QTreeWidgetItemIterator(QTreeWidgetItem*)", typeof(void), typeof(QTreeWidgetItem), item);
        }
        ~QTreeWidgetItemIterator() {
            interceptor.Invoke("~QTreeWidgetItemIterator", "~QTreeWidgetItemIterator()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QTreeWidgetItemIterator", "~QTreeWidgetItemIterator()", typeof(void));
        }
        public static QTreeWidgetItemIterator operator++(QTreeWidgetItemIterator lhs) {
            return (QTreeWidgetItemIterator) staticInterceptor.Invoke("operator++", "operator++()", typeof(QTreeWidgetItemIterator), typeof(QTreeWidgetItemIterator), lhs);
        }
        public static QTreeWidgetItemIterator operator--(QTreeWidgetItemIterator lhs) {
            return (QTreeWidgetItemIterator) staticInterceptor.Invoke("operator--", "operator--()", typeof(QTreeWidgetItemIterator), typeof(QTreeWidgetItemIterator), lhs);
        }
    }
}
