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


//                 Generated by preSip
//            module kfile  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_1_0 -  )

class KNotifyDialog : KDialogBase
{
%TypeHeaderCode
#include <knotifydialog.h>
%End


public:
                         KNotifyDialog (QWidget* /TransferThis/ = 0, const char* = 0, bool = 1, const KAboutData* = 0);
%MethodCode
//takes parent | (QWidget = 0) | name | (char = 0) | modal | (bool = 1) | aboutData | (KAboutData = see note)
//doc
// The default value for aboutData in C++ is KGlobal::instance()->aboutData()
// which sip is unable to parse. Since it's the last arg in the list, it has
// to have a default value, and since the C++ code will fail if the default
// value really is zero, the sip code silently substitutes the real default
// value for a default value of 0 supplied from Python.
//end

    if (a3 == 0)
        a3 = (KAboutData *)KGlobal::instance ()->aboutData ();

    Py_BEGIN_ALLOW_THREADS
    sipCpp = new sipKNotifyDialog (a0, a1, a2, a3);
    Py_END_ALLOW_THREADS
%End

    static int           configure (QWidget* /Transfer/ = 0, const char* = 0, const KAboutData* = 0);
%MethodCode
//returns (int)
//takes parent | (QWidget = 0) | name | (a Python string = "") | aboutData | (KAboutData = see note)
//doc
// The default value for aboutData in C++ is KGlobal::instance()->aboutData()
// which sip is unable to parse. Since it's the last arg in the list, it has
// to have a default value, and since the C++ code will fail if the default
// value really is zero, the sip code silently substitutes the real default
// value for a default value of 0 supplied from Python.
//end

    if (a2 == 0)
        a2 = (KAboutData *)KGlobal::instance ()->aboutData ();

    Py_BEGIN_ALLOW_THREADS
    sipRes = KNotifyDialog::configure (a0, a1, a2);
    Py_END_ALLOW_THREADS
%End

    virtual void         addApplicationEvents (const char*);
    virtual void         addApplicationEvents (const QString&);
    virtual void         clearApplicationEvents ();

};  // class KNotifyDialog

%End


%If ( KDE_3_1_0 -  )
namespace KNotify
{
typedef QPtrList<KNotify::Event> EventList;
//ig typedef QPtrListIterator<KNotify::Application> ApplicationListIterator;
//ig typedef QPtrListIterator<KNotify::Event> EventListIterator;

class Application
{
%TypeHeaderCode
#include <knotifydialog.h>
%End


public:
                         Application (const QString&);
    QString              text () const;
    QString              icon () const;
    const KNotify::EventList& eventList ();
    void                 reloadEvents (bool = 0);
    void                 save ();
    QString              appName () const;

};  // class Application


%If ( KDE_3_2_0 -  )

//ig class KNotifyWidget : KNotifyWidgetBase;

%End


class Event
{
%TypeHeaderCode
#include <knotifydialog.h>
%End


public:
    QString              text () const;
    int                  presentation;
    int                  dontShow;
    QString              logfile;
    QString              soundfile;
    QString              commandline;
    const KNotify::Application* application () const;

private:
                         Event (const KNotify::Application*);

};  // class Event


//ig class ListViewItem : QListViewItem;


%If (  - KDE_3_2_0 )

class KNotifyWidget : KNotifyWidgetBase
{
%TypeHeaderCode
#include <knotifywidgetbase.h>
#include <knotifydialog.h>
%End


public:
                         KNotifyWidget (QWidget* /TransferThis/ = 0, const char* = 0, bool = 0);
    KListView*           eventsView ();
    void                 addVisibleApp (KNotify::Application*);
    KNotify::Application* addApplicationEvents (const QString&);
    void                 resetDefaults (bool);
    void                 sort (bool = 1);

public slots:
    virtual void         clear ();
    virtual void         clearVisible ();
    virtual void         save ();
    virtual void         showAdvanced (bool);
    void                 toggleAdvanced ();

signals:
    void                 changed (bool);

protected:
    KNotify::Event*      currentEvent ();
    virtual void         showEvent (QShowEvent*);
    virtual void         enableAll (int, bool);
    void                 reload (bool = 0);

protected slots:
    void                 playSound ();

public:
    SIP_PYLIST           visibleApps ();
%MethodCode
//returns (a Python list of KNotify.Application)
    QPtrList<KNotify::Application> applist;

    Py_BEGIN_ALLOW_THREADS
    applist = sipCpp->visibleApps  ();
    Py_END_ALLOW_THREADS

    KNotify::Application *app;
    PyObject *inst;

    for (app = applist.first (); app != 0; app = applist.next () )
    {
        inst = sipConvertFromInstance (app, sipClass_KNotify_Application, NULL);
        PyList_Append (sipRes, inst);
    }
%End

    SIP_PYLIST           allApps ();
%MethodCode
//returns (a Python list of KNotify.Application)
    QPtrList<KNotify::Application> applist;

    Py_BEGIN_ALLOW_THREADS
    applist = sipCpp->allApps  ();
    Py_END_ALLOW_THREADS

    KNotify::Application *app;
    PyObject *inst;

    for(app = applist.first (); app != 0; app = applist.next () )
    {
        inst = sipConvertFromInstance (app, sipClass_KNotify_Application, NULL);
        PyList_Append (sipRes, inst);
    }
%End


};  // class KNotifyWidget

%End

//force

class ApplicationList
{
%TypeHeaderCode
#include <knotifydialog.h>
%End


};  // class ApplicationList

//end
};  // namespace KNotify

%End



%If (KDE_3_1_0 - )
%MappedType QPtrList<KNotify::Event>
//converts a Python list of KNotify.Event
{
%TypeHeaderCode
#include <qptrlist.h>
#include <knotifydialog.h>
%End

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

    PyObject *pylist;

    // Create the list

    if ((pylist = PyList_New(0)) == NULL)
        return NULL;

    // Get it.

    QPtrList<KNotify::Event> *cpplist = (QPtrList<KNotify::Event> *)sipCpp;
    KNotify::Event *cpp;
    PyObject *inst;

    // the loop depends on the type of iterator the  tmeplate makes available
    for(cpp = cpplist->first (); cpp != 0; cpp = cpplist->next () )
    {
        if (((inst = sipConvertFromInstance (cpp, sipClass_KNotify_Event, sipTransferObj)) == NULL)
            || PyList_Append (pylist, inst) < 0)
        {
            Py_DECREF (pylist);
            return NULL;
        }
    }

    return pylist;
%End

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

    QPtrList<KNotify::Event> *cpplist = new QPtrList<KNotify::Event>;

    PyObject *elem;
    KNotify::Event *cpp;
    int iserr = 0;

    for (int i = 0; i < PyList_Size (sipPy); i++)
    {
        elem = PyList_GET_ITEM (sipPy, i);
        cpp = (KNotify::Event *)sipForceConvertToType(elem, sipType_KNotify_Event, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr);

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

        cpplist->append (cpp);
    }

    *sipCppPtr = cpplist;

    return 1;
%End
};
%End


