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


//                 Generated by preSip
//            module tdemdi  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 KMdiWin32IconButton : TQLabel
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiWin32IconButton (TQWidget*, const char* = 0);
    virtual void         mousePressEvent (TQMouseEvent*);

signals:
    void                 pressed ();

};  // class KMdiWin32IconButton


class KMdiChildFrmMoveEvent : TQCustomEvent
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiChildFrmMoveEvent (TQMoveEvent*);

};  // class KMdiChildFrmMoveEvent


class KMdiChildFrmDragBeginEvent : TQCustomEvent
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiChildFrmDragBeginEvent (TQMouseEvent*);

};  // class KMdiChildFrmDragBeginEvent


class KMdiChildFrmDragEndEvent : TQCustomEvent
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiChildFrmDragEndEvent (TQMouseEvent*);

};  // class KMdiChildFrmDragEndEvent


class KMdiChildFrmResizeBeginEvent : TQCustomEvent
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiChildFrmResizeBeginEvent (TQMouseEvent*);

};  // class KMdiChildFrmResizeBeginEvent


class KMdiChildFrmResizeEndEvent : TQCustomEvent
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:
                         KMdiChildFrmResizeEndEvent (TQMouseEvent*);

};  // class KMdiChildFrmResizeEndEvent


class KMdiChildFrm : TQFrame
{
%TypeHeaderCode
#include <tdemdichildfrm.h>
%End


public:

    enum MdiWindowState
    {
        Normal, 
        Maximized, 
        Minimized
    };

    KMdiChildView*       m_pClient;

protected:

public:
                         KMdiChildFrm (KMdiChildArea*);
    void                 setClient (KMdiChildView*, bool = 0);
    void                 unsetClient (TQPoint = TQPoint (0 ,0 ));
    void                 setIcon (const TQPixmap&);
    TQPixmap*             icon () const;
    void                 enableClose (bool);
    void                 setCaption (const TQString&);
    const TQString&       caption ();
    void                 setState (KMdiChildFrm::MdiWindowState, bool = 1);
    KMdiChildFrm::MdiWindowState state () const;
    TQRect                mdiAreaContentsRect () const;
    TQRect                restoreGeometry () const;
    void                 setRestoreGeometry (const TQRect&);
    void                 updateRects ();
    TQPopupMenu*          systemMenu () const;
    int                  captionHeight () const;
    void                 redecorateButtons ();
    bool                 isInDrag () const;
    bool                 isInResize () const;
    void                 raiseAndActivate ();
    virtual void         setMinimumSize (int, int);

public slots:
    void                 slot_resizeViaSystemMenu ();

protected:
    virtual void         resizeEvent (TQResizeEvent*);
    virtual void         mouseMoveEvent (TQMouseEvent*);
    virtual void         mousePressEvent (TQMouseEvent*);
    virtual void         mouseReleaseEvent (TQMouseEvent*);
    virtual void         moveEvent (TQMoveEvent*);
    virtual void         leaveEvent (TQEvent*);
    virtual bool         eventFilter (TQObject*, TQEvent*);
    void                 resizeWindow (int, int, int);
    void                 setResizeCursor (int);
    void                 unsetResizeCursor ();
    virtual void         switchToMinimizeLayout ();
    void                 doResize ();
    void                 doResize (bool);

protected slots:
    void                 maximizePressed ();
    void                 restorePressed ();
    void                 minimizePressed ();
    void                 closePressed ();
    void                 undockPressed ();
    void                 showSystemMenu ();

protected:
//ig     void                 linkChildren (TQDict<FocusPolicy>*);
    TQDict<TQWidget::FocusPolicy>* unlinkChildren ();
    int                  getResizeCorner (int, int);

protected:

%If (  - KDE_3_2_2 )
    void                 linkChildren (TQDict<TQWidget::FocusPolicy>*);
%End


};  // class KMdiChildFrm



%MappedType TQDict<TQWidget::FocusPolicy>
//converts a Python dict of TQWidget::FocusPolicy
{
%TypeHeaderCode
#include <tqdict.h>
%End

%ConvertFromTypeCode
// Convert to a Python dictionary

    if (!sipCpp)
    return PyDict_New();

    PyObject *dict;

    // Create the dictionary.

    if ((dict = PyDict_New()) == NULL)
        return NULL;

    // Get it.

    TQDict<TQWidget::FocusPolicy> tqdict = *sipCpp;
    TQDictIterator<TQWidget::FocusPolicy> it (tqdict);

    while (it.current ())
    {
        TQString current_key = it.currentKey ();
        PyObject *a0 = sipConvertFromInstance (&current_key, sipClass_TQString, sipTransferObj);
        PyObject *a1 = PyLong_FromLong ((long) it.current ());

        if ((a0 == NULL) || (a1 == NULL) || (PyDict_SetItem (dict, a0, a1) < 0))
        {
            Py_XDECREF (a0);
            Py_XDECREF (a1);
            Py_DECREF (dict);
            return NULL;
        }
    }

    return dict;
%End


%ConvertToTypeCode
    // Convert a Python dictionary to a TQDict<int> on the heap.

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

    TQDict<TQWidget::FocusPolicy>* tqdict = new TQDict<TQWidget::FocusPolicy>;

    PyObject *key, *value;
    SIP_SSIZE_T pos = 0;
    TQString *a0;
    TQWidget::FocusPolicy a1;

    while (PyDict_Next(sipPy, &pos, &key, &value))
    {
        int iserr = 0, a0_state;

        a0 = (TQString *)sipForceConvertToType(key, sipType_TQString, sipTransferObj, SIP_NOT_NONE, &a0_state, &iserr);

        if (iserr || !PyLong_Check(value))
        {
            if (a0)
                sipReleaseType(a0, sipType_TQString, a0_state);

            *sipIsErr = 1;
            delete tqdict;
            return 0;
        }

        a1 = (TQWidget::FocusPolicy) PyLong_AS_LONG (value);

        tqdict->insert (*a0, &a1);

        sipReleaseType(a0, sipType_TQString, a0_state);
    }

    *sipCppPtr = tqdict;

    return 1;
%End
};


