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


//                 Generated by preSip
//            module tdeabc  version KDE_3_4_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.

namespace TDEABC
{

class Addressee
{
%TypeHeaderCode
#include <addressee.h>
%End


public:
//ig     typedef TQValueList<TDEABC::Addressee> List;

%If ( KDE_3_4_2 -  )
    typedef TQMap<TQString,TDEABC::Addressee> Map;
%End

                         Addressee ();
                         Addressee (const TDEABC::Addressee&);

%If ( KDE_3_1_0 -  )
    bool                 operator == (const TDEABC::Addressee&) const;
    bool                 operator != (const TDEABC::Addressee&) const;
%End

    bool                 isEmpty () const;
    void                 setUid (const TQString&);
    TQString              uid () const;

%If ( KDE_3_1_0 -  )
    static TQString       uidLabel ();
%End

    void                 setName (const TQString&);
    TQString              name () const;

%If ( KDE_3_1_0 -  )
    static TQString       nameLabel ();
%End

    void                 setFormattedName (const TQString&);
    TQString              formattedName () const;

%If ( KDE_3_1_0 -  )
    static TQString       formattedNameLabel ();
%End

    void                 setFamilyName (const TQString&);
    TQString              familyName () const;

%If ( KDE_3_1_0 -  )
    static TQString       familyNameLabel ();
%End

    void                 setGivenName (const TQString&);
    TQString              givenName () const;

%If ( KDE_3_1_0 -  )
    static TQString       givenNameLabel ();
%End

    void                 setAdditionalName (const TQString&);
    TQString              additionalName () const;

%If ( KDE_3_1_0 -  )
    static TQString       additionalNameLabel ();
%End

    void                 setPrefix (const TQString&);
    TQString              prefix () const;

%If ( KDE_3_1_0 -  )
    static TQString       prefixLabel ();
%End

    void                 setSuffix (const TQString&);
    TQString              suffix () const;

%If ( KDE_3_1_0 -  )
    static TQString       suffixLabel ();
%End

    void                 setNickName (const TQString&);
    TQString              nickName () const;

%If ( KDE_3_1_0 -  )
    static TQString       nickNameLabel ();
%End

    void                 setBirthday (const TQDateTime&);
    TQDateTime            birthday () const;

%If ( KDE_3_1_0 -  )
    static TQString       birthdayLabel ();
    static TQString       homeAddressStreetLabel ();
    static TQString       homeAddressLocalityLabel ();
    static TQString       homeAddressRegionLabel ();
    static TQString       homeAddressPostalCodeLabel ();
    static TQString       homeAddressCountryLabel ();
    static TQString       homeAddressLabelLabel ();
    static TQString       businessAddressStreetLabel ();
    static TQString       businessAddressLocalityLabel ();
    static TQString       businessAddressRegionLabel ();
    static TQString       businessAddressPostalCodeLabel ();
    static TQString       businessAddressCountryLabel ();
    static TQString       businessAddressLabelLabel ();
    static TQString       homePhoneLabel ();
    static TQString       businessPhoneLabel ();
    static TQString       mobilePhoneLabel ();
    static TQString       homeFaxLabel ();
    static TQString       businessFaxLabel ();
    static TQString       carPhoneLabel ();
    static TQString       isdnLabel ();
    static TQString       pagerLabel ();
    static TQString       emailLabel ();
%End

    void                 setMailer (const TQString&);
    TQString              mailer () const;

%If ( KDE_3_1_0 -  )
    static TQString       mailerLabel ();
%End

    void                 setTimeZone (const TDEABC::TimeZone&);
    TDEABC::TimeZone       timeZone () const;

%If ( KDE_3_1_0 -  )
    static TQString       timeZoneLabel ();
%End

    void                 setGeo (const TDEABC::Geo&);
    TDEABC::Geo            geo () const;

%If ( KDE_3_1_0 -  )
    static TQString       geoLabel ();
%End

    void                 setTitle (const TQString&);
    TQString              title () const;

%If ( KDE_3_1_0 -  )
    static TQString       titleLabel ();
%End

    void                 setRole (const TQString&);
    TQString              role () const;

%If ( KDE_3_1_0 -  )
    static TQString       roleLabel ();
%End

    void                 setOrganization (const TQString&);
    TQString              organization () const;

%If ( KDE_3_1_0 -  )
    static TQString       organizationLabel ();
%End

    void                 setNote (const TQString&);
    TQString              note () const;

%If ( KDE_3_1_0 -  )
    static TQString       noteLabel ();
%End

    void                 setProductId (const TQString&);
    TQString              productId () const;

%If ( KDE_3_1_0 -  )
    static TQString       productIdLabel ();
%End

    void                 setRevision (const TQDateTime&);
    TQDateTime            revision () const;

%If ( KDE_3_1_0 -  )
    static TQString       revisionLabel ();
%End

    void                 setSortString (const TQString&);
    TQString              sortString () const;

%If ( KDE_3_1_0 -  )
    static TQString       sortStringLabel ();
%End

    void                 setUrl (const KURL&);
    KURL                 url () const;

%If ( KDE_3_1_0 -  )
    static TQString       urlLabel ();
    void                 setSecrecy (const TDEABC::Secrecy&);
    TDEABC::Secrecy        secrecy () const;
    static TQString       secrecyLabel ();
    void                 setLogo (const TDEABC::Picture&);
    TDEABC::Picture        logo () const;
    static TQString       logoLabel ();
    void                 setPhoto (const TDEABC::Picture&);
    TDEABC::Picture        photo () const;
    static TQString       photoLabel ();
    void                 setSound (const TDEABC::Sound&);
    TDEABC::Sound          sound () const;
    static TQString       soundLabel ();
    void                 setAgent (const TDEABC::Agent&);
    TDEABC::Agent          agent () const;
    static TQString       agentLabel ();
%End

    void                 setNameFromString (const TQString&);
    TQString              realName () const;

%If ( KDE_3_1_0 -  )
    TQString              assembledName () const;
%End

    TQString              fullEmail (const TQString& = TQString ::null ) const;
    void                 insertEmail (const TQString&, bool = 0);
    void                 removeEmail (const TQString&);
    TQString              preferredEmail () const;
    TQStringList          emails () const;

%If ( KDE_3_4_2 -  )
    void                 setEmails (const TQStringList&);
%End

    void                 insertPhoneNumber (const TDEABC::PhoneNumber&);
    void                 removePhoneNumber (const TDEABC::PhoneNumber&);
    TDEABC::PhoneNumber    phoneNumber (int) const;
    TDEABC::PhoneNumber::List phoneNumbers () const;

%If ( KDE_3_1_0 -  )
    TDEABC::PhoneNumber::List phoneNumbers (int) const;
%End

    TDEABC::PhoneNumber    findPhoneNumber (const TQString&) const;

%If ( KDE_3_1_0 -  )
    void                 insertKey (const TDEABC::Key&);
    void                 removeKey (const TDEABC::Key&);
    TDEABC::Key            key (int, TQString = TQString ::null ) const;
    TDEABC::Key::List      keys () const;

%If ( KDE_3_4_2 -  )
    void                 setKeys (const TDEABC::Key::List&);
%End

    TDEABC::Key::List      keys (int, TQString = TQString ::null ) const;
    TDEABC::Key            findKey (const TQString&) const;
%End

    void                 insertAddress (const TDEABC::Address&);
    void                 removeAddress (const TDEABC::Address&);
    TDEABC::Address        address (int) const;
    TDEABC::Address::List  addresses () const;

%If ( KDE_3_1_0 -  )
    TDEABC::Address::List  addresses (int) const;
%End

    TDEABC::Address        findAddress (const TQString&) const;
    void                 insertCategory (const TQString&);
    void                 removeCategory (const TQString&);
    bool                 hasCategory (const TQString&) const;
    void                 setCategories (const TQStringList&);
    TQStringList          categories () const;
    void                 insertCustom (const TQString&, const TQString&, const TQString&);
    void                 removeCustom (const TQString&, const TQString&);
    TQString              custom (const TQString&, const TQString&) const;
    void                 setCustoms (const TQStringList&);
    TQStringList          customs () const;

%If ( KDE_3_1_0 -  )
    static void          parseEmailAddress (const TQString&, TQString&, TQString&);
%End

    void                 dump () const;

%If ( KDE_3_1_0 -  )
    TQString              asString () const;
    void                 setResource (TDEABC::Resource*);
    TDEABC::Resource*      resource () const;
    void                 setChanged (bool);
    bool                 changed () const;

%If ( KDE_3_4_2 -  )
    static void          setSortMode (TDEABC::SortMode*);
    bool                 operator < (const TDEABC::Addressee&);
%End

%End






};  // class Addressee


%If ( KDE_3_1_0 -  )
//igx TQDataStream&         operator << (TQDataStream&, const TDEABC::Addressee&);
//igx TQDataStream&         operator >> (TQDataStream&, TDEABC::Addressee&);
%End

};  // namespace TDEABC



%MappedType TDEABC::Addressee::List
//converts a Python list of TDEABC::Addressee
{
%TypeHeaderCode
#include <tqvaluelist.h>
//typedef TQValueList<TDEABC::Addressee> List;
%End

%ConvertFromTypeCode
    if (!sipCpp)
        return PyList_New(0);

    // Create the list
    PyObject *pylist;
    if ((pylist = PyList_New(0)) == NULL)
        return NULL;

    TQValueList<TDEABC::Addressee> *cpplist = (TQValueList<TDEABC::Addressee> *)sipCpp;
    PyObject *inst;

    // Get it.
    TQValueList<TDEABC::Addressee>::Iterator it;
    for( it = cpplist->begin(); it != cpplist->end(); ++it )
    {
        if (((inst = sipConvertFromNewType(new TDEABC::Addressee (*it), sipType_TDEABC_Addressee, NULL)) == NULL)
            || PyList_Append (pylist, inst) < 0)
        {
            Py_DECREF (pylist);
            return NULL;
        }
    }

    return pylist;
%End


%ConvertToTypeCode
    if (sipIsErr == NULL)
        return PyList_Check(sipPy);

    TQValueList<TDEABC::Addressee> *cpplist = new TQValueList<TDEABC::Addressee>;

    PyObject *elem;
    TDEABC::Addressee *cpp;
    int iserr = 0;

    for (int i = 0; i < PyList_Size (sipPy); i++)
    {
        elem = PyList_GET_ITEM (sipPy, i);
        cpp = (TDEABC::Addressee *)sipForceConvertToType(elem, sipType_TDEABC_Addressee, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr);

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

        cpplist->append (*cpp);
    }

    *sipCppPtr = cpplist;

    return 1;
%End
};

%MappedType TDEABC::Address::List
//converts a Python list of TDEABC::Address
{
%TypeHeaderCode
#include <tqvaluelist.h>
//typedef TQValueList<TDEABC::Address> List;
%End

%ConvertFromTypeCode
    if (!sipCpp)
        return PyList_New(0);

    // Create the list
    PyObject *pylist;
    if ((pylist = PyList_New(0)) == NULL)
        return NULL;

    TQValueList<TDEABC::Address> *cpplist = (TQValueList<TDEABC::Address> *)sipCpp;
    PyObject *inst;

    // Get it.
    TQValueList<TDEABC::Address>::Iterator it;
    for( it = cpplist->begin(); it != cpplist->end(); ++it )
    {
        if (((inst = sipConvertFromNewType(new TDEABC::Address (*it), sipType_TDEABC_Address, NULL)) == NULL)
            || PyList_Append (pylist, inst) < 0)
        {
            Py_DECREF (pylist);
            return NULL;
        }
    }

    return pylist;
%End


%ConvertToTypeCode
    if (sipIsErr == NULL)
        return PyList_Check(sipPy);

    TQValueList<TDEABC::Address> *cpplist = new TQValueList<TDEABC::Address>;

    PyObject *elem;
    TDEABC::Address *cpp;
    int iserr = 0;

    for (int i = 0; i < PyList_Size (sipPy); i++)
    {
        elem = PyList_GET_ITEM (sipPy, i);
        cpp = (TDEABC::Address *)sipForceConvertToType(elem, sipType_TDEABC_Address, sipTransferObj, SIP_NOT_NONE|SIP_NO_CONVERTORS, NULL, &iserr);

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

        cpplist->append (*cpp);
    }

    *sipCppPtr = cpplist;

    return 1;
%End
};

