//Auto-generated by kalyptus. DO NOT EDIT.
namespace Phonon {
    using Phonon;
    using System;
    using Qyoto;
    using System.Collections.Generic;
    /// <remarks> \internal
    ///  \class ObjectDescriptionModelData objectdescriptionmodel.h Phonon/ObjectDescriptionModelData
    ///  \brief Data class for models for ObjectDescription objects.
    ///  \author Matthias Kretz <kretz@kde.org>
    ///      </remarks>        <short>   \internal  \class ObjectDescriptionModelData objectdescriptionmodel.</short>
    [SmokeClass("Phonon::ObjectDescriptionModelData")]
    public class ObjectDescriptionModelData : Object {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected ObjectDescriptionModelData(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(ObjectDescriptionModelData), this);
        }
        // void setModelData(const QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> >& arg1); >>>> NOT CONVERTED
        // QList<QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> > modelData(); >>>> NOT CONVERTED
        // QExplicitlySharedDataPointer<Phonon::ObjectDescriptionData> modelData(const QModelIndex& arg1); >>>> NOT CONVERTED
        /// <remarks>
        ///  Returns the number of rows in the model. This value corresponds
        ///  to the size of the list passed through setModelData.
        ///  \param parent The optional <pre>parent</pre> argument is used in most models to specify
        ///  the parent of the rows to be counted. Because this is a list if a
        ///  valid parent is specified the result will always be 0.
        ///  Reimplemented from QAbstractItemModel.
        ///  \see QAbstractItemModel.RowCount
        ///              </remarks>        <short>    Returns the number of rows in the model.</short>
        public int RowCount(QModelIndex parent) {
            return (int) interceptor.Invoke("rowCount#", "rowCount(const QModelIndex&) const", typeof(int), typeof(QModelIndex), parent);
        }
        public int RowCount() {
            return (int) interceptor.Invoke("rowCount", "rowCount() const", typeof(int));
        }
        /// <remarks>
        ///  Returns data from the item with the given <pre>index</pre> for the specified
        ///  <pre>role</pre>.
        ///  If the view requests an invalid index, an invalid variant is
        ///  returned.
        ///  Reimplemented from QAbstractItemModel.
        ///  \see QAbstractItemModel.Data
        ///  \see Qt.ItemDataRole
        ///              </remarks>        <short>    Returns data from the item with the given \p index for the specified  \p role.</short>
        public QVariant Data(QModelIndex index, int role) {
            return (QVariant) interceptor.Invoke("data#$", "data(const QModelIndex&, int) const", typeof(QVariant), typeof(QModelIndex), index, typeof(int), role);
        }
        public QVariant Data(QModelIndex index) {
            return (QVariant) interceptor.Invoke("data#", "data(const QModelIndex&) const", typeof(QVariant), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Reimplemented to show unavailable devices as disabled (but still
        ///  selectable).
        ///              </remarks>        <short>    Reimplemented to show unavailable devices as disabled (but still  selectable).</short>
        public uint Flags(QModelIndex index) {
            return (uint) interceptor.Invoke("flags#", "flags(const QModelIndex&) const", typeof(uint), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Returns a list of indexes in the same order as they are in the
        ///  model. The indexes come from the ObjectDescription.Index
        ///  method.
        ///  This is useful to let the user define a list of preference.
        ///              </remarks>        <short>    Returns a list of indexes in the same order as they are in the  model.</short>
        public List<int> TupleIndexOrder() {
            return (List<int>) interceptor.Invoke("tupleIndexOrder", "tupleIndexOrder() const", typeof(List<int>));
        }
        /// <remarks>
        ///  Returns the ObjectDescription.Index for the tuple
        ///  at the given position <pre>positionIndex</pre>. For example a
        ///  QComboBox will give you the currentIndex as the
        ///  position in the list. But to select the according
        ///  AudioOutputDevice using AudioOutputDevice.FromIndex
        ///  you can use this method.
        ///  \param positionIndex The position in the list.
        ///              </remarks>        <short>    Returns the ObjectDescription.Index for the tuple  at the given position \p positionIndex.</short>
        public int TupleIndexAtPositionIndex(int positionIndex) {
            return (int) interceptor.Invoke("tupleIndexAtPositionIndex$", "tupleIndexAtPositionIndex(int) const", typeof(int), typeof(int), positionIndex);
        }
        /// <remarks>
        ///  Returns the MIME data that dropMimeData() can use to create new
        ///  items.
        ///              </remarks>        <short>    Returns the MIME data that dropMimeData() can use to create new  items.</short>
        public QMimeData MimeData(Phonon.ObjectDescriptionType type, List<QModelIndex> indexes) {
            return (QMimeData) interceptor.Invoke("mimeData$?", "mimeData(Phonon::ObjectDescriptionType, const QList<QModelIndex>&) const", typeof(QMimeData), typeof(Phonon.ObjectDescriptionType), type, typeof(List<QModelIndex>), indexes);
        }
        /// <remarks>
        ///  Moves the item at the given <pre>index</pre> up. In the resulting list
        ///  the items at index.row() and index.row() - 1 are swapped.
        ///  Connected views are updated automatically.
        ///              </remarks>        <short>    Moves the item at the given \p index up.</short>
        public void MoveUp(QModelIndex index) {
            interceptor.Invoke("moveUp#", "moveUp(const QModelIndex&)", typeof(void), typeof(QModelIndex), index);
        }
        /// <remarks>
        ///  Moves the item at the given <pre>index</pre> down. In the resulting list
        ///  the items at index.row() and index.row() + 1 are swapped.
        ///  Connected views are updated automatically.
        ///              </remarks>        <short>    Moves the item at the given \p index down.</short>
        public void MoveDown(QModelIndex index) {
            interceptor.Invoke("moveDown#", "moveDown(const QModelIndex&)", typeof(void), typeof(QModelIndex), index);
        }
        public uint SupportedDropActions() {
            return (uint) interceptor.Invoke("supportedDropActions", "supportedDropActions() const", typeof(uint));
        }
        public bool DropMimeData(Phonon.ObjectDescriptionType type, QMimeData data, Qt.DropAction action, int row, int column, QModelIndex parent) {
            return (bool) interceptor.Invoke("dropMimeData$#$$$#", "dropMimeData(Phonon::ObjectDescriptionType, const QMimeData*, Qt::DropAction, int, int, const QModelIndex&)", typeof(bool), typeof(Phonon.ObjectDescriptionType), type, typeof(QMimeData), data, typeof(Qt.DropAction), action, typeof(int), row, typeof(int), column, typeof(QModelIndex), parent);
        }
        public bool RemoveRows(int row, int count, QModelIndex parent) {
            return (bool) interceptor.Invoke("removeRows$$#", "removeRows(int, int, const QModelIndex&)", typeof(bool), typeof(int), row, typeof(int), count, typeof(QModelIndex), parent);
        }
        public bool RemoveRows(int row, int count) {
            return (bool) interceptor.Invoke("removeRows$$", "removeRows(int, int)", typeof(bool), typeof(int), row, typeof(int), count);
        }
        public List<string> MimeTypes(Phonon.ObjectDescriptionType type) {
            return (List<string>) interceptor.Invoke("mimeTypes$", "mimeTypes(Phonon::ObjectDescriptionType) const", typeof(List<string>), typeof(Phonon.ObjectDescriptionType), type);
        }
        public ObjectDescriptionModelData(QAbstractListModel arg1) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("ObjectDescriptionModelData#", "ObjectDescriptionModelData(QAbstractListModel*)", typeof(void), typeof(QAbstractListModel), arg1);
        }
    }
}
