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


//                 Generated by preSip
//            module tdecore  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.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


%If ( KDE_3_2_0 -  )

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


public:
//ig     typedef TDESharedPtr<KMountPoint> Ptr;
//ig     typedef TQValueList<KMountPoint::Ptr> List;

public:

    enum 
    {
        NeedMountOptions, 
        NeedRealDeviceName
    };

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

%If ( KDE_3_4_0 -  )
    static TQString       devNameFromOptions (const TQStringList&);
%End


private:
                         KMountPoint ();

};  // class KMountPoint

%End



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

%ConvertFromTypeCode
    // Convert to a Python instance

    if (!sipCpp)
        return NULL;

    TDESharedPtr<KMountPoint> *cPtr = new TDESharedPtr<KMountPoint> (*(TDESharedPtr<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 *)sipForceConvertToType(sipPy, sipType_KMountPoint, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr);

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

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

    return 1;
%End
};


%MappedType KMountPoint::List
//converts a Python list of KMountPoint
{
%TypeHeaderCode
#include <tqvaluelist.h>
#include <kmountpoint.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 = sipConvertFromType(static_cast<KMountPoint::Ptr>(*it), sipType_KMountPoint_Ptr, 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 *)sipForceConvertToType(elem, sipType_KMountPoint, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr);

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

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

        cList->append (*ptr);
    }

    *sipCppPtr = cList;

    return 1;
%End
};


