//
//     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.


class TDEStartupInfo : TQObject
{
%TypeHeaderCode
#include <tdestartupinfo.h>
%End


public:

%If ( KDE_3_2_0 -  )
    static void          disableAutoAppStartedSending (bool = 1);
%End

    static void          appStarted ();

%If ( KDE_3_2_0 -  )
    static void          appStarted (const TQCString&);
    static void          setNewStartupId (TQWidget*, const TQCString&);
    static void          silenceStartup (bool);

%If ( KDE_3_3_0 -  )
    static TQCString      createNewStartupId ();
%End

%End


%If ( KDE_3_1_1 -  )

    enum 
    {
        CleanOnCantDetect,
        DisableTWinModule,
        AnnounceSilenceChanges
    };

%End

                         TDEStartupInfo (bool, TQObject* /TransferThis/ = 0, const char* = 0);
    static bool          sendStartup (const TDEStartupInfoId&, const TDEStartupInfoData&);
//ig     static bool          sendStartupX (Display*, const TDEStartupInfoId&, const TDEStartupInfoData&);
    static bool          sendChange (const TDEStartupInfoId&, const TDEStartupInfoData&);
//ig     static bool          sendChangeX (Display*, const TDEStartupInfoId&, const TDEStartupInfoData&);
    static bool          sendFinish (const TDEStartupInfoId&);
//ig     static bool          sendFinishX (Display*, const TDEStartupInfoId&);
    static bool          sendFinish (const TDEStartupInfoId&, const TDEStartupInfoData&);
//ig     static bool          sendFinishX (Display*, const TDEStartupInfoId&, const TDEStartupInfoData&);
    static TDEStartupInfoId currentStartupIdEnv ();
    static void          resetStartupEnv ();

    enum startup_t
    {
        NoMatch, 
        Match, 
        CantDetect
    };

    TDEStartupInfo::startup_t checkStartup (WId);
    TDEStartupInfo::startup_t checkStartup (WId, TDEStartupInfoId&);
    TDEStartupInfo::startup_t checkStartup (WId, TDEStartupInfoData&);
    TDEStartupInfo::startup_t checkStartup (WId, TDEStartupInfoId&, TDEStartupInfoData&);
    void                 setTimeout (uint);
    static void          setWindowStartupId (WId, const TQCString&);
    static TQCString      windowStartupId (WId);

%If ( KDE_3_2_0 -  )
    static void          handleAutoAppStartedSending ();
%End


signals:
    void                 gotNewStartup (const TDEStartupInfoId&, const TDEStartupInfoData&);
    void                 gotStartupChange (const TDEStartupInfoId&, const TDEStartupInfoData&);
    void                 gotRemoveStartup (const TDEStartupInfoId&, const TDEStartupInfoData&);

protected:
    virtual void         customEvent (TQCustomEvent*);

};  // class TDEStartupInfo


class TDEStartupInfoId
{
%TypeHeaderCode
#include <tdestartupinfo.h>
%End


public:

%If ( KDE_3_1_4 -  )
    bool                 operator == (const TDEStartupInfoId&) const;
    bool                 operator != (const TDEStartupInfoId&) const;
%End

    bool                 none () const;
    void                 initId (const TQCString& = "");
    const TQCString&      id () const;

%If ( KDE_3_3_0 -  )
    ulong                timestamp () const;
%End

    bool                 setupStartupEnv () const;
                         TDEStartupInfoId ();
                         TDEStartupInfoId (const TDEStartupInfoId&);

%If ( KDE_3_1_4 -  )
    bool                 operator < (const TDEStartupInfoId&) const;
%End


private:
                         TDEStartupInfoId (const TQString&);

};  // class TDEStartupInfoId


class TDEStartupInfoData
{
%TypeHeaderCode
#include <tdestartupinfo.h>
%End


public:
    void                 setBin (const TQString&);
    const TQString&       bin () const;
    void                 setName (const TQString&);
    const TQString&       findName () const;
    const TQString&       name () const;

%If ( KDE_3_2_0 -  )
    void                 setDescription (const TQString&);
    const TQString&       findDescription () const;
    const TQString&       description () const;
%End

    void                 setIcon (const TQString&);
    const TQString&       findIcon () const;
    const TQString&       icon () const;
    void                 setDesktop (int);
    int                  desktop () const;
    void                 setWMClass (const TQCString&);
    const TQCString       findWMClass () const;
    const TQCString&      WMClass () const;
    void                 addPid (pid_t);
    const TQValueList<int>& pids () const;
    bool                 is_pid (pid_t) const;
    void                 setHostname (const TQCString& = TQCString ());
    const TQCString&      hostname () const;

%If ( KDE_3_1_1 -  )

    enum TriState
    {
        Yes, 
        No, 
        Unknown
    };

    void                 setSilent (TDEStartupInfoData::TriState);
    TDEStartupInfoData::TriState silent () const;

%If ( KDE_3_2_0 -  )
    void                 setTimestamp (ulong);
    ulong                timestamp () const;
    int                  screen () const;
    void                 setScreen (int);
%End

%End

    void                 update (const TDEStartupInfoData&);
                         TDEStartupInfoData ();
                         TDEStartupInfoData (const TDEStartupInfoData&);

private:
                         TDEStartupInfoData (const TQString&);

};  // class TDEStartupInfoData

/*%MappedType TQValueList<pid_t>
//converts a Python list of long
{
%TypeHeaderCode
#include <tqvaluelist.h>
%End

%ConvertFromTypeCode
    // Handle no list.

    if (!sipCpp)
        return PyList_New(0);

    // Convert to a Python list of long.

    PyObject *l;

    // Create the list.

    if ((l = PyList_New(sipCpp -> count())) == NULL)
        return NULL;

    // Get it.

    for (uint i = 0; i < sipCpp -> count(); ++i)
        if (PyList_SetItem(l,i,PyLong_FromLong((long)(*sipCpp)[i])) < 0)
        {
            Py_DECREF(l);

            return NULL;
        }

    return l;
%End

%ConvertToTypeCode
    // Convert a Python list of long to a TQValueList<long> on the heap.

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

    if (sipPy == Py_None)
    {
        *sipCppPtr = NULL;

        return 0;
    }

    TQValueList<pid_t> *tqvl = new TQValueList<pid_t>;

    PyErr_Clear();

    for (int i = 0; i < PyList_GET_SIZE(sipPy); ++i)
    {
        tqvl -> append((pid_t)PyLong_AsLong(PyList_GET_ITEM(sipPy,i)));

        if (PyErr_Occurred() != NULL)
        {
            delete tqvl;
            *sipIsErr = 1;

            return 0;
        }
    }

    *sipCppPtr = tqvl;

    return 1;
%End
};*/


