//
//     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 PartBase : KXMLGUIClient
{
%TypeHeaderCode
#include <kparts/part.h>
%End


public:
                            PartBase ();
    void                    setPartObject (QObject* object);
    QObject*                partObject () const;

protected:
    virtual void            setComponentData (const KComponentData& componentData);
    virtual void            setComponentData (const KComponentData& componentData, bool loadPlugins);

    enum PluginLoadingMode
    {
        DoNotLoadPlugins,
        LoadPlugins,
        LoadPluginsIfEnabled
    };

    void                    loadPlugins (QObject* parent /Transfer/, KXMLGUIClient* parentGUIClient, const KComponentData& componentData);
//ig     void               setPluginLoadingMode (KParts::PartBase::PluginLoadingMode loadingMode);
    void                    setPluginInterfaceVersion (int version);
//ig                        PartBase (PartBasePrivate& dd);

private:
                            PartBase (const KParts::PartBase&);
};   // PartBase


class Part : QObject, KParts::PartBase
{
%TypeHeaderCode
#include <kparts/part.h>
%End


public:
    explicit                Part (QObject* parent /TransferThis/ = 0);
    virtual void            embed (QWidget* parentWidget);
    virtual QWidget*        widget ();
    virtual void            setManager (KParts::PartManager* manager);
    KParts::PartManager*    manager () const;
    void                    setAutoDeleteWidget (bool autoDeleteWidget);
    void                    setAutoDeletePart (bool autoDeletePart);
    virtual KParts::Part*   hitTest (QWidget* widget, const QPoint& globalPos);
    virtual void            setSelectable (bool selectable);
    bool                    isSelectable () const;
    KIconLoader*            iconLoader ();

signals:
    void                    setWindowCaption (const QString& caption);
    void                    setStatusBarText (const QString& text);

protected:
    virtual void            setWidget (QWidget* widget);
    virtual void            customEvent (QEvent* event);
    virtual void            partActivateEvent (KParts::PartActivateEvent* event);
    virtual void            partSelectEvent (KParts::PartSelectEvent* event);
    virtual void            guiActivateEvent (KParts::GUIActivateEvent* event);
    QWidget*                hostContainer (const QString& containerName);

    void                    loadPlugins ();

    void                    slotWidgetDestroyed ();
//ig                        Part (PartPrivate& dd, QObject* parent /TransferThis/);

private:
                            Part (const KParts::Part&);
};   // Part


class OpenUrlArguments
{
%TypeHeaderCode
#include <kparts/part.h>
%End


public:
                            OpenUrlArguments ();
                            OpenUrlArguments (const KParts::OpenUrlArguments& other);
    bool                    reload () const;
    void                    setReload (bool b);
    int                     xOffset () const;
    void                    setXOffset (int x);
    int                     yOffset () const;
    void                    setYOffset (int y);
    QString                 mimeType () const;
    void                    setMimeType (const QString& mime);

    bool                    actionRequestedByUser () const;
    void                    setActionRequestedByUser (bool userRequested);

    QMap<QString,QString>&  metaData ();
//ig     const QMap<QString,QString>&  metaData () const;
};   // OpenUrlArguments


class ReadOnlyPart : KParts::Part
{
%TypeHeaderCode
#include <kparts/part.h>
%End


public:
    explicit                ReadOnlyPart (QObject* parent /TransferThis/ = 0);
    void                    setProgressInfoEnabled (bool show);
    bool                    isProgressInfoEnabled () const;
    void                    showProgressInfo (bool show);
    virtual bool            openUrl (const KUrl& url);
    KUrl                    url () const;
    virtual bool            closeUrl ();
    KParts::BrowserExtension*  browserExtension () const;
    void                    setArguments (const KParts::OpenUrlArguments& arguments);
    KParts::OpenUrlArguments  arguments () const;
    bool                    openStream (const QString& mimeType, const KUrl& url);
    bool                    writeStream (const QByteArray& data);
    bool                    closeStream ();

signals:
    void                    started (KIO::Job*);
    void                    completed ();
    void                    completed (bool pendingAction);
    void                    canceled (const QString& errMsg);

protected:
    virtual bool            openFile () = 0;
    void                    abortLoad ();
    virtual void            guiActivateEvent (KParts::GUIActivateEvent* event);
    bool                    isLocalFileTemporary () const;
    void                    setLocalFileTemporary (bool temp);
    void                    setUrl (const KUrl& url);
    QString                 localFilePath () const;
    void                    setLocalFilePath (const QString& localFilePath);
//ig                        ReadOnlyPart (ReadOnlyPartPrivate& dd, QObject* parent /TransferThis/);

private:
                            ReadOnlyPart (const KParts::ReadOnlyPart&);
};   // ReadOnlyPart


class ReadWritePart : KParts::ReadOnlyPart
{
%TypeHeaderCode
#include <kparts/part.h>
%End


public:
    explicit                ReadWritePart (QObject* parent /TransferThis/ = 0);
    bool                    isReadWrite () const;
    virtual void            setReadWrite (bool readwrite = 1);
    bool                    isModified () const;
    virtual bool            queryClose ();
    virtual bool            closeUrl ();
    virtual bool            closeUrl (bool promptToSave);
    virtual bool            saveAs (const KUrl& url);
    virtual void            setModified (bool modified);

signals:
//ig     void               sigQueryClose (bool* handled, bool* abortClosing);

public:
    void                    setModified ();
    virtual bool            save ();
    bool                    waitSaveComplete ();

protected:
    virtual bool            saveFile () = 0;
    virtual bool            saveToUrl ();

private:
                            ReadWritePart (const KParts::ReadWritePart&);
};   // ReadWritePart

};   // KParts


