//
//     Copyright 2008 Jim Bublitz <jbublitz@nwinternet.com>
//     Earlier copyrights 1998 - 2007 Jim Bublitz also apply

//                 Generated by twine

// This file is part of PyKDE4.

// PyKDE4 is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as
// published by the Free Software Foundation; either version 2.1 of
// the License, or (at your option) any later version.

// PyKDE4 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 program.  If not, see <http://www.gnu.org/licenses/>.

namespace KParts
{

class PartManager : QObject
{
%TypeHeaderCode
#include <kparts/partmanager.h>
%End


public:

    enum SelectionPolicy
    {
        Direct,
        TriState
    };


    enum Reason
    {
        ReasonLeftClick,
        ReasonMidClick,
        ReasonRightClick,
        NoReason
    };

                            PartManager (QWidget* parent /TransferThis/);
                            PartManager (QWidget* topLevel, QObject* parent /TransferThis/);
    void                    setSelectionPolicy (KParts::PartManager::SelectionPolicy policy);
    KParts::PartManager::SelectionPolicy  selectionPolicy () const;
    void                    setAllowNestedParts (bool allow);
    bool                    allowNestedParts () const;
    void                    setIgnoreScrollBars (bool ignore);
    bool                    ignoreScrollBars () const;
    void                    setActivationButtonMask (short buttonMask);
    short                   activationButtonMask () const;
    virtual bool            eventFilter (QObject* obj, QEvent* ev);
    virtual void            addPart (KParts::Part* part, bool setActive = 1);
    virtual void            removePart (KParts::Part* part);
    virtual void            replacePart (KParts::Part* oldPart, KParts::Part* newPart, bool setActive = 1);
    virtual void            setActivePart (KParts::Part* part, QWidget* widget = 0);
    virtual KParts::Part*   activePart () const;
    virtual QWidget*        activeWidget () const;
    virtual void            setSelectedPart (KParts::Part* part, QWidget* widget = 0);
    virtual KParts::Part*   selectedPart () const;
    virtual QWidget*        selectedWidget () const;
    const QList<KParts::Part*>  parts () const;
    void                    addManagedTopLevelWidget (const QWidget* topLevel);
    void                    removeManagedTopLevelWidget (const QWidget* topLevel);
    int                     reason () const;

signals:
    void                    partAdded (KParts::Part* part);
    void                    partRemoved (KParts::Part* part);
    void                    activePartChanged (KParts::Part* newPart);

protected:
    virtual void            setActiveComponent (const KComponentData& instance);
    void                    slotObjectDestroyed ();
    void                    slotWidgetDestroyed ();
    void                    slotManagedTopLevelWidgetDestroyed ();
};   // PartManager

};   // KParts


