//
//     Copyright 2006 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson
//     may also apply


//                 Generated by preSip
//            module kdecore  version KDE 3.5.3


// This software is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public
// License along with this library; see the file COPYING.
// If not, write to the Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


%If ( KDE_3_2_0 -  )

class KMountPoint : KShared
{
%TypeHeaderCode
#include <kmountpoint.h>
%End


public:
//ig     typedef KSharedPtr<KMountPoint> Ptr;
//ig     typedef QValueList<KMountPoint::Ptr> List;

public:

    enum 
    {
        NeedMountOptions, 
        NeedRealDeviceName
    };

    static KMountPoint::List possibleMountPoints (int = 0);
    static KMountPoint::List currentMountPoints (int = 0);
    QString              mountedFrom () const;
    QString              realDeviceName () const;
    QString              mountPoint () const;
    QString              mountType () const;
    QStringList          mountOptions () const;

%If ( KDE_3_4_0 -  )
    static QString       devNameFromOptions (const QStringList&);
%End


private:
                         KMountPoint ();

};  // class KMountPoint

%End



%MappedType KMountPoint::Ptr
//converts KMountPoint
{
%TypeHeaderCode
#include <ksharedptr.h>
#include <kmountpoint.h>
#include <sipkdecoreKMountPoint.h>
%End

%ConvertFromTypeCode
    // Convert to a Python instance

    if (!sipCpp)
        return NULL;

    KSharedPtr<KMountPoint> *cPtr = new KSharedPtr<KMountPoint> (*(KSharedPtr<KMountPoint> *)sipCpp);
    KMountPoint *cpp = cPtr->data ();
    PyObject *obj = sipConvertFromInstance (cpp, sipClass_KMountPoint, sipTransferObj);

    return obj;
%End

%ConvertToTypeCode
    // Convert a Python instance to a Ptr on the heap.

    if (sipIsErr == NULL)
        return PyInstance_Check(sipPy);

    int iserr = 0;
    KMountPoint *cpp = (KMountPoint *)sipForceConvertTo_KMountPoint (sipPy, &iserr);

    if (iserr)
    {
        *sipIsErr = 1;
        return 0;
    }

    *sipCppPtr = new KSharedPtr<KMountPoint> (cpp);

    return 1;
%End
};


%MappedType KMountPoint::List
//converts a Python list of KMountPoint
{
%TypeHeaderCode
#include <qvaluelist.h>
#include <kmountpoint.h>
#include <sipkdecoreKMountPoint.h>
#include <sipkdecoreKMountPointPtr.h>
%End

%ConvertFromTypeCode
    // Convert to a Python list of Ptr (KMountPoint).
    if (!sipCpp)
        return PyList_New (0);

    PyObject *plist;

    // Create the list
    if ((plist = PyList_New(0)) == NULL)
        return NULL;

    // Get it.
    KMountPoint::List *cList = (KMountPoint::List *)sipCpp;
    PyObject *inst;

    KMountPoint::List::Iterator it;
    for( it = cList->begin(); it != cList->end(); ++it )
    {
        inst = sipConvertFrom_KMountPoint_Ptr (&(KMountPoint::Ptr)(*it), sipTransferObj);

        if ((inst == NULL) || (PyList_Append (plist, inst) < 0))
        {
            Py_XDECREF (inst);
            Py_DECREF (plist);
            return NULL;
        }
    }

    return plist;
%End

%ConvertToTypeCode
    // Convert a Python list to List on the heap.
    if (sipIsErr == NULL)
        return PyList_Check(sipPy);

    KMountPoint::List *cList = new KMountPoint::List;

    PyObject *elem;
    KMountPoint *mtpt;
    int iserr = 0;

    for (int i = 0; i < PyList_Size (sipPy); i++)
    {
        elem = PyList_GET_ITEM (sipPy, i);
        mtpt = (KMountPoint *)sipForceConvertTo_KMountPoint (elem, &iserr);

        KMountPoint::Ptr *ptr = new KMountPoint::Ptr (mtpt);

        if (iserr)
        {
            *sipIsErr = 1;
            delete cList;
            return 0;
        }

        cList->append (*ptr);
    }

    *sipCppPtr = cList;

    return 1;
%End
};


