//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    /// <remarks> See <see cref="IQHeaderViewSignals"></see> for signals emitted by QHeaderView
    /// </remarks>
    [SmokeClass("QHeaderView")]
    public class QHeaderView : QAbstractItemView, IDisposable {
        protected QHeaderView(Type dummy) : base((Type) null) {}
        protected new void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QHeaderView), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QHeaderView() {
            staticInterceptor = new SmokeInvocation(typeof(QHeaderView), null);
        }
        public enum ResizeMode {
            Interactive = 0,
            Stretch = 1,
            Fixed = 2,
            ResizeToContents = 3,
            Custom = Fixed,
        }
        [Q_PROPERTY("bool", "showSortIndicator")]
        public bool ShowSortIndicator {
            get { return (bool) interceptor.Invoke("isSortIndicatorShown", "isSortIndicatorShown()", typeof(bool)); }
            set { interceptor.Invoke("setSortIndicatorShown$", "setSortIndicatorShown(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "highlightSections")]
        public bool HighlightSections {
            get { return (bool) interceptor.Invoke("highlightSections", "highlightSections()", typeof(bool)); }
            set { interceptor.Invoke("setHighlightSections$", "setHighlightSections(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "stretchLastSection")]
        public bool StretchLastSection {
            get { return (bool) interceptor.Invoke("stretchLastSection", "stretchLastSection()", typeof(bool)); }
            set { interceptor.Invoke("setStretchLastSection$", "setStretchLastSection(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("bool", "cascadingSectionResizes")]
        public bool CascadingSectionResizes {
            get { return (bool) interceptor.Invoke("cascadingSectionResizes", "cascadingSectionResizes()", typeof(bool)); }
            set { interceptor.Invoke("setCascadingSectionResizes$", "setCascadingSectionResizes(bool)", typeof(void), typeof(bool), value); }
        }
        [Q_PROPERTY("int", "defaultSectionSize")]
        public int DefaultSectionSize {
            get { return (int) interceptor.Invoke("defaultSectionSize", "defaultSectionSize()", typeof(int)); }
            set { interceptor.Invoke("setDefaultSectionSize$", "setDefaultSectionSize(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("int", "minimumSectionSize")]
        public int MinimumSectionSize {
            get { return (int) interceptor.Invoke("minimumSectionSize", "minimumSectionSize()", typeof(int)); }
            set { interceptor.Invoke("setMinimumSectionSize$", "setMinimumSectionSize(int)", typeof(void), typeof(int), value); }
        }
        [Q_PROPERTY("Qt::Alignment", "defaultAlignment")]
        public uint DefaultAlignment {
            get { return (uint) interceptor.Invoke("defaultAlignment", "defaultAlignment()", typeof(uint)); }
            set { interceptor.Invoke("setDefaultAlignment$", "setDefaultAlignment(Qt::Alignment)", typeof(void), typeof(uint), value); }
        }
        // QHeaderView* QHeaderView(QHeaderViewPrivate& arg1,Qt::Orientation arg2,QWidget* arg3); >>>> NOT CONVERTED
        // QHeaderView* QHeaderView(QHeaderViewPrivate& arg1,Qt::Orientation arg2); >>>> NOT CONVERTED
        public QHeaderView(Qt.Orientation orientation, QWidget parent) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QHeaderView$#", "QHeaderView(Qt::Orientation, QWidget*)", typeof(void), typeof(Qt.Orientation), orientation, typeof(QWidget), parent);
        }
        public QHeaderView(Qt.Orientation orientation) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QHeaderView$", "QHeaderView(Qt::Orientation)", typeof(void), typeof(Qt.Orientation), orientation);
        }
        [SmokeMethod("setModel(QAbstractItemModel*)")]
        public override void SetModel(QAbstractItemModel model) {
            interceptor.Invoke("setModel#", "setModel(QAbstractItemModel*)", typeof(void), typeof(QAbstractItemModel), model);
        }
        public new Qt.Orientation Orientation() {
            return (Qt.Orientation) interceptor.Invoke("orientation", "orientation() const", typeof(Qt.Orientation));
        }
        public int Offset() {
            return (int) interceptor.Invoke("offset", "offset() const", typeof(int));
        }
        public int Length() {
            return (int) interceptor.Invoke("length", "length() const", typeof(int));
        }
        [SmokeMethod("sizeHint() const")]
        public override QSize SizeHint() {
            return (QSize) interceptor.Invoke("sizeHint", "sizeHint() const", typeof(QSize));
        }
        public int SectionSizeHint(int logicalIndex) {
            return (int) interceptor.Invoke("sectionSizeHint$", "sectionSizeHint(int) const", typeof(int), typeof(int), logicalIndex);
        }
        public int VisualIndexAt(int position) {
            return (int) interceptor.Invoke("visualIndexAt$", "visualIndexAt(int) const", typeof(int), typeof(int), position);
        }
        public int LogicalIndexAt(int position) {
            return (int) interceptor.Invoke("logicalIndexAt$", "logicalIndexAt(int) const", typeof(int), typeof(int), position);
        }
        public int LogicalIndexAt(int x, int y) {
            return (int) interceptor.Invoke("logicalIndexAt$$", "logicalIndexAt(int, int) const", typeof(int), typeof(int), x, typeof(int), y);
        }
        public int LogicalIndexAt(QPoint pos) {
            return (int) interceptor.Invoke("logicalIndexAt#", "logicalIndexAt(const QPoint&) const", typeof(int), typeof(QPoint), pos);
        }
        public int SectionSize(int logicalIndex) {
            return (int) interceptor.Invoke("sectionSize$", "sectionSize(int) const", typeof(int), typeof(int), logicalIndex);
        }
        public int SectionPosition(int logicalIndex) {
            return (int) interceptor.Invoke("sectionPosition$", "sectionPosition(int) const", typeof(int), typeof(int), logicalIndex);
        }
        public int SectionViewportPosition(int logicalIndex) {
            return (int) interceptor.Invoke("sectionViewportPosition$", "sectionViewportPosition(int) const", typeof(int), typeof(int), logicalIndex);
        }
        public void MoveSection(int from, int to) {
            interceptor.Invoke("moveSection$$", "moveSection(int, int)", typeof(void), typeof(int), from, typeof(int), to);
        }
        public void SwapSections(int first, int second) {
            interceptor.Invoke("swapSections$$", "swapSections(int, int)", typeof(void), typeof(int), first, typeof(int), second);
        }
        public void ResizeSection(int logicalIndex, int size) {
            interceptor.Invoke("resizeSection$$", "resizeSection(int, int)", typeof(void), typeof(int), logicalIndex, typeof(int), size);
        }
        public void ResizeSections(QHeaderView.ResizeMode mode) {
            interceptor.Invoke("resizeSections$", "resizeSections(QHeaderView::ResizeMode)", typeof(void), typeof(QHeaderView.ResizeMode), mode);
        }
        public bool IsSectionHidden(int logicalIndex) {
            return (bool) interceptor.Invoke("isSectionHidden$", "isSectionHidden(int) const", typeof(bool), typeof(int), logicalIndex);
        }
        public void SetSectionHidden(int logicalIndex, bool hide) {
            interceptor.Invoke("setSectionHidden$$", "setSectionHidden(int, bool)", typeof(void), typeof(int), logicalIndex, typeof(bool), hide);
        }
        public int HiddenSectionCount() {
            return (int) interceptor.Invoke("hiddenSectionCount", "hiddenSectionCount() const", typeof(int));
        }
        public void HideSection(int logicalIndex) {
            interceptor.Invoke("hideSection$", "hideSection(int)", typeof(void), typeof(int), logicalIndex);
        }
        public void ShowSection(int logicalIndex) {
            interceptor.Invoke("showSection$", "showSection(int)", typeof(void), typeof(int), logicalIndex);
        }
        public int Count() {
            return (int) interceptor.Invoke("count", "count() const", typeof(int));
        }
        public int VisualIndex(int logicalIndex) {
            return (int) interceptor.Invoke("visualIndex$", "visualIndex(int) const", typeof(int), typeof(int), logicalIndex);
        }
        public int LogicalIndex(int visualIndex) {
            return (int) interceptor.Invoke("logicalIndex$", "logicalIndex(int) const", typeof(int), typeof(int), visualIndex);
        }
        public void SetMovable(bool movable) {
            interceptor.Invoke("setMovable$", "setMovable(bool)", typeof(void), typeof(bool), movable);
        }
        public bool IsMovable() {
            return (bool) interceptor.Invoke("isMovable", "isMovable() const", typeof(bool));
        }
        public void SetClickable(bool clickable) {
            interceptor.Invoke("setClickable$", "setClickable(bool)", typeof(void), typeof(bool), clickable);
        }
        public bool IsClickable() {
            return (bool) interceptor.Invoke("isClickable", "isClickable() const", typeof(bool));
        }
        public void SetResizeMode(QHeaderView.ResizeMode mode) {
            interceptor.Invoke("setResizeMode$", "setResizeMode(QHeaderView::ResizeMode)", typeof(void), typeof(QHeaderView.ResizeMode), mode);
        }
        public void SetResizeMode(int logicalIndex, QHeaderView.ResizeMode mode) {
            interceptor.Invoke("setResizeMode$$", "setResizeMode(int, QHeaderView::ResizeMode)", typeof(void), typeof(int), logicalIndex, typeof(QHeaderView.ResizeMode), mode);
        }
        public QHeaderView.ResizeMode resizeMode(int logicalIndex) {
            return (QHeaderView.ResizeMode) interceptor.Invoke("resizeMode$", "resizeMode(int) const", typeof(QHeaderView.ResizeMode), typeof(int), logicalIndex);
        }
        public int StretchSectionCount() {
            return (int) interceptor.Invoke("stretchSectionCount", "stretchSectionCount() const", typeof(int));
        }
        public void SetSortIndicator(int logicalIndex, Qt.SortOrder order) {
            interceptor.Invoke("setSortIndicator$$", "setSortIndicator(int, Qt::SortOrder)", typeof(void), typeof(int), logicalIndex, typeof(Qt.SortOrder), order);
        }
        public int SortIndicatorSection() {
            return (int) interceptor.Invoke("sortIndicatorSection", "sortIndicatorSection() const", typeof(int));
        }
        public Qt.SortOrder SortIndicatorOrder() {
            return (Qt.SortOrder) interceptor.Invoke("sortIndicatorOrder", "sortIndicatorOrder() const", typeof(Qt.SortOrder));
        }
        [SmokeMethod("doItemsLayout()")]
        public override void DoItemsLayout() {
            interceptor.Invoke("doItemsLayout", "doItemsLayout()", typeof(void));
        }
        public bool SectionsMoved() {
            return (bool) interceptor.Invoke("sectionsMoved", "sectionsMoved() const", typeof(bool));
        }
        public bool SectionsHidden() {
            return (bool) interceptor.Invoke("sectionsHidden", "sectionsHidden() const", typeof(bool));
        }
        public QByteArray SaveState() {
            return (QByteArray) interceptor.Invoke("saveState", "saveState() const", typeof(QByteArray));
        }
        public bool RestoreState(QByteArray state) {
            return (bool) interceptor.Invoke("restoreState#", "restoreState(const QByteArray&)", typeof(bool), typeof(QByteArray), state);
        }
        [SmokeMethod("reset()")]
        public override void Reset() {
            interceptor.Invoke("reset", "reset()", typeof(void));
        }
        [Q_SLOT("void setOffset(int)")]
        public void SetOffset(int offset) {
            interceptor.Invoke("setOffset$", "setOffset(int)", typeof(void), typeof(int), offset);
        }
        [Q_SLOT("void setOffsetToSectionPosition(int)")]
        public void SetOffsetToSectionPosition(int visualIndex) {
            interceptor.Invoke("setOffsetToSectionPosition$", "setOffsetToSectionPosition(int)", typeof(void), typeof(int), visualIndex);
        }
        [Q_SLOT("void setOffsetToLastSection()")]
        public void SetOffsetToLastSection() {
            interceptor.Invoke("setOffsetToLastSection", "setOffsetToLastSection()", typeof(void));
        }
        [Q_SLOT("void headerDataChanged(Qt::Orientation, int, int)")]
        public void HeaderDataChanged(Qt.Orientation orientation, int logicalFirst, int logicalLast) {
            interceptor.Invoke("headerDataChanged$$$", "headerDataChanged(Qt::Orientation, int, int)", typeof(void), typeof(Qt.Orientation), orientation, typeof(int), logicalFirst, typeof(int), logicalLast);
        }
        protected void Initialize() {
            interceptor.Invoke("initialize", "initialize()", typeof(void));
        }
        protected void InitializeSections() {
            interceptor.Invoke("initializeSections", "initializeSections()", typeof(void));
        }
        protected void InitializeSections(int start, int end) {
            interceptor.Invoke("initializeSections$$", "initializeSections(int, int)", typeof(void), typeof(int), start, typeof(int), end);
        }
        [SmokeMethod("currentChanged(const QModelIndex&, const QModelIndex&)")]
        protected override void CurrentChanged(QModelIndex current, QModelIndex old) {
            interceptor.Invoke("currentChanged##", "currentChanged(const QModelIndex&, const QModelIndex&)", typeof(void), typeof(QModelIndex), current, typeof(QModelIndex), old);
        }
        [SmokeMethod("event(QEvent*)")]
        protected override bool Event(QEvent e) {
            return (bool) interceptor.Invoke("event#", "event(QEvent*)", typeof(bool), typeof(QEvent), e);
        }
        [SmokeMethod("paintEvent(QPaintEvent*)")]
        protected override void PaintEvent(QPaintEvent e) {
            interceptor.Invoke("paintEvent#", "paintEvent(QPaintEvent*)", typeof(void), typeof(QPaintEvent), e);
        }
        [SmokeMethod("mousePressEvent(QMouseEvent*)")]
        protected override void MousePressEvent(QMouseEvent e) {
            interceptor.Invoke("mousePressEvent#", "mousePressEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("mouseMoveEvent(QMouseEvent*)")]
        protected override void MouseMoveEvent(QMouseEvent e) {
            interceptor.Invoke("mouseMoveEvent#", "mouseMoveEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("mouseReleaseEvent(QMouseEvent*)")]
        protected override void MouseReleaseEvent(QMouseEvent e) {
            interceptor.Invoke("mouseReleaseEvent#", "mouseReleaseEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("mouseDoubleClickEvent(QMouseEvent*)")]
        protected override void MouseDoubleClickEvent(QMouseEvent e) {
            interceptor.Invoke("mouseDoubleClickEvent#", "mouseDoubleClickEvent(QMouseEvent*)", typeof(void), typeof(QMouseEvent), e);
        }
        [SmokeMethod("viewportEvent(QEvent*)")]
        protected override bool ViewportEvent(QEvent e) {
            return (bool) interceptor.Invoke("viewportEvent#", "viewportEvent(QEvent*)", typeof(bool), typeof(QEvent), e);
        }
        [SmokeMethod("paintSection(QPainter*, const QRect&, int) const")]
        protected virtual void PaintSection(QPainter painter, QRect rect, int logicalIndex) {
            interceptor.Invoke("paintSection##$", "paintSection(QPainter*, const QRect&, int) const", typeof(void), typeof(QPainter), painter, typeof(QRect), rect, typeof(int), logicalIndex);
        }
        [SmokeMethod("sectionSizeFromContents(int) const")]
        protected virtual QSize SectionSizeFromContents(int logicalIndex) {
            return (QSize) interceptor.Invoke("sectionSizeFromContents$", "sectionSizeFromContents(int) const", typeof(QSize), typeof(int), logicalIndex);
        }
        [SmokeMethod("horizontalOffset() const")]
        protected override int HorizontalOffset() {
            return (int) interceptor.Invoke("horizontalOffset", "horizontalOffset() const", typeof(int));
        }
        [SmokeMethod("verticalOffset() const")]
        protected override int VerticalOffset() {
            return (int) interceptor.Invoke("verticalOffset", "verticalOffset() const", typeof(int));
        }
        [SmokeMethod("updateGeometries()")]
        protected override void UpdateGeometries() {
            interceptor.Invoke("updateGeometries", "updateGeometries()", typeof(void));
        }
        [SmokeMethod("scrollContentsBy(int, int)")]
        protected override void ScrollContentsBy(int dx, int dy) {
            interceptor.Invoke("scrollContentsBy$$", "scrollContentsBy(int, int)", typeof(void), typeof(int), dx, typeof(int), dy);
        }
        [SmokeMethod("dataChanged(const QModelIndex&, const QModelIndex&)")]
        protected override void DataChanged(QModelIndex topLeft, QModelIndex bottomRight) {
            interceptor.Invoke("dataChanged##", "dataChanged(const QModelIndex&, const QModelIndex&)", typeof(void), typeof(QModelIndex), topLeft, typeof(QModelIndex), bottomRight);
        }
        [SmokeMethod("rowsInserted(const QModelIndex&, int, int)")]
        protected override void RowsInserted(QModelIndex parent, int start, int end) {
            interceptor.Invoke("rowsInserted#$$", "rowsInserted(const QModelIndex&, int, int)", typeof(void), typeof(QModelIndex), parent, typeof(int), start, typeof(int), end);
        }
        [SmokeMethod("visualRect(const QModelIndex&) const")]
        public override QRect VisualRect(QModelIndex index) {
            return (QRect) interceptor.Invoke("visualRect#", "visualRect(const QModelIndex&) const", typeof(QRect), typeof(QModelIndex), index);
        }
        [SmokeMethod("scrollTo(const QModelIndex&, QAbstractItemView::ScrollHint)")]
        public override void ScrollTo(QModelIndex index, QAbstractItemView.ScrollHint hint) {
            interceptor.Invoke("scrollTo#$", "scrollTo(const QModelIndex&, QAbstractItemView::ScrollHint)", typeof(void), typeof(QModelIndex), index, typeof(QAbstractItemView.ScrollHint), hint);
        }
        [SmokeMethod("indexAt(const QPoint&) const")]
        public override QModelIndex IndexAt(QPoint p) {
            return (QModelIndex) interceptor.Invoke("indexAt#", "indexAt(const QPoint&) const", typeof(QModelIndex), typeof(QPoint), p);
        }
        [SmokeMethod("isIndexHidden(const QModelIndex&) const")]
        protected override bool IsIndexHidden(QModelIndex index) {
            return (bool) interceptor.Invoke("isIndexHidden#", "isIndexHidden(const QModelIndex&) const", typeof(bool), typeof(QModelIndex), index);
        }
        [SmokeMethod("moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers)")]
        protected override QModelIndex MoveCursor(QAbstractItemView.CursorAction arg1, uint arg2) {
            return (QModelIndex) interceptor.Invoke("moveCursor$$", "moveCursor(QAbstractItemView::CursorAction, Qt::KeyboardModifiers)", typeof(QModelIndex), typeof(QAbstractItemView.CursorAction), arg1, typeof(uint), arg2);
        }
        [SmokeMethod("setSelection(const QRect&, QItemSelectionModel::SelectionFlags)")]
        protected override void SetSelection(QRect arg1, uint arg2) {
            interceptor.Invoke("setSelection#$", "setSelection(const QRect&, QItemSelectionModel::SelectionFlags)", typeof(void), typeof(QRect), arg1, typeof(uint), arg2);
        }
        [SmokeMethod("visualRegionForSelection(const QItemSelection&) const")]
        protected override QRegion VisualRegionForSelection(QItemSelection selection) {
            return (QRegion) interceptor.Invoke("visualRegionForSelection#", "visualRegionForSelection(const QItemSelection&) const", typeof(QRegion), typeof(QItemSelection), selection);
        }
        protected void InitStyleOption(QStyleOptionHeader option) {
            interceptor.Invoke("initStyleOption#", "initStyleOption(QStyleOptionHeader*) const", typeof(void), typeof(QStyleOptionHeader), option);
        }
        [Q_SLOT("void updateSection(int)")]
        protected void UpdateSection(int logicalIndex) {
            interceptor.Invoke("updateSection$", "updateSection(int)", typeof(void), typeof(int), logicalIndex);
        }
        [Q_SLOT("void resizeSections()")]
        protected void ResizeSections() {
            interceptor.Invoke("resizeSections", "resizeSections()", typeof(void));
        }
        [Q_SLOT("void sectionsInserted(QModelIndex, int, int)")]
        protected void SectionsInserted(QModelIndex parent, int logicalFirst, int logicalLast) {
            interceptor.Invoke("sectionsInserted#$$", "sectionsInserted(const QModelIndex&, int, int)", typeof(void), typeof(QModelIndex), parent, typeof(int), logicalFirst, typeof(int), logicalLast);
        }
        [Q_SLOT("void sectionsAboutToBeRemoved(QModelIndex, int, int)")]
        protected void SectionsAboutToBeRemoved(QModelIndex parent, int logicalFirst, int logicalLast) {
            interceptor.Invoke("sectionsAboutToBeRemoved#$$", "sectionsAboutToBeRemoved(const QModelIndex&, int, int)", typeof(void), typeof(QModelIndex), parent, typeof(int), logicalFirst, typeof(int), logicalLast);
        }
        ~QHeaderView() {
            interceptor.Invoke("~QHeaderView", "~QHeaderView()", typeof(void));
        }
        public new void Dispose() {
            interceptor.Invoke("~QHeaderView", "~QHeaderView()", typeof(void));
        }
        public static new string Tr(string s, string c) {
            return (string) staticInterceptor.Invoke("tr$$", "tr(const char*, const char*)", typeof(string), typeof(string), s, typeof(string), c);
        }
        public static new string Tr(string s) {
            return (string) staticInterceptor.Invoke("tr$", "tr(const char*)", typeof(string), typeof(string), s);
        }
        protected new IQHeaderViewSignals Emit {
            get { return (IQHeaderViewSignals) Q_EMIT; }
        }
    }

    public interface IQHeaderViewSignals : IQAbstractItemViewSignals {
        [Q_SIGNAL("void sectionMoved(int, int, int)")]
        void SectionMoved(int logicalIndex, int oldVisualIndex, int newVisualIndex);
        [Q_SIGNAL("void sectionResized(int, int, int)")]
        void SectionResized(int logicalIndex, int oldSize, int newSize);
        [Q_SIGNAL("void sectionPressed(int)")]
        void SectionPressed(int logicalIndex);
        [Q_SIGNAL("void sectionClicked(int)")]
        void SectionClicked(int logicalIndex);
        [Q_SIGNAL("void sectionEntered(int)")]
        void SectionEntered(int logicalIndex);
        [Q_SIGNAL("void sectionDoubleClicked(int)")]
        void SectionDoubleClicked(int logicalIndex);
        [Q_SIGNAL("void sectionCountChanged(int, int)")]
        void SectionCountChanged(int oldCount, int newCount);
        [Q_SIGNAL("void sectionHandleDoubleClicked(int)")]
        void SectionHandleDoubleClicked(int logicalIndex);
        [Q_SIGNAL("void sectionAutoResize(int, QHeaderView::ResizeMode)")]
        void SectionAutoResize(int logicalIndex, QHeaderView.ResizeMode mode);
        [Q_SIGNAL("void geometriesChanged()")]
        void GeometriesChanged();
        [Q_SIGNAL("void sortIndicatorChanged(int, Qt::SortOrder)")]
        void SortIndicatorChanged(int logicalIndex, Qt.SortOrder order);
    }
}
