//
//     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.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


class KPropertiesDialog : KDialogBase
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
    static bool          canDisplay (KFileItemList);
                         KPropertiesDialog (KFileItem*, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0, bool = 1);
                         KPropertiesDialog (KFileItemList, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0, bool = 1);
                         KPropertiesDialog (const KURL&, mode_t, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0, bool = 1);
                         KPropertiesDialog (const KURL&, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0, bool = 1);
                         KPropertiesDialog (const KURL&, const KURL&, const QString&, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0, bool = 1);
                         KPropertiesDialog (const QString&, QWidget* /TransferThis/ = 0, const char* = 0, bool = 0);

%If ( KDE_3_4_0 -  )
    static bool          showDialog (KFileItem*, QWidget* /Transfer/ = 0, const char* = 0, bool = 0);
    static bool          showDialog (const KURL&, QWidget* /Transfer/ = 0, const char* = 0, bool = 0);
    static bool          showDialog (const KFileItemList&, QWidget* /Transfer/ = 0, const char* = 0, bool = 0);
%End

    void                 insertPlugin (KPropsDlgPlugin*);
    const KURL&          kurl () const;
    KFileItem*           item ();
    KFileItemList        items () const;
    KDialogBase*         dialog ();
    const KURL&          currentDir () const;
    const QString&       defaultName () const;
    void                 updateUrl (const KURL&);
    void                 rename (const QString&);
    void                 abortApplying ();

%If ( KDE_3_1_0 -  )
    void                 showFileSharingPage ();

%If ( KDE_3_3_0 -  )
    void                 setFileSharingPage (QWidget*);
%End


%If ( KDE_3_2_0 -  )
    void                 setFileNameReadOnly (bool);
%End

%End


public slots:
    virtual void         slotOk ();
    virtual void         slotCancel ();

signals:
    void                 propertiesClosed ();
    void                 applied ();
    void                 canceled ();

%If ( KDE_3_2_0 -  )
    void                 saveAs (const KURL&, KURL&);
%End


protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KPropertiesDialog


class KPropsDlgPlugin : QObject
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KPropsDlgPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          isDesktopFile (KFileItem*);
    void                 setDirty (bool);
    bool                 isDirty () const;

public slots:
    void                 setDirty ();

signals:
    void                 changed ();

protected:

protected:
//igx     virtual void         virtual_hook (int, void*);

};  // class KPropsDlgPlugin


class KFilePropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KFilePropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);
    void                 postApplyChanges ();

%If ( KDE_3_2_0 -  )
    void                 setFileNameReadOnly (bool);
%End


protected slots:

%If ( KDE_3_2_0 -  )
    void                 slotEditFileType ();
%End

    void                 slotCopyFinished (KIO::Job*);
    void                 slotFileRenamed (KIO::Job*, const KURL&, const KURL&);

%If ( KDE_3_2_0 -  )
    void                 slotDirSizeUpdate ();
%End

    void                 slotDirSizeFinished (KIO::Job*);
    void                 slotFoundMountPoint (const QString&, ulong, ulong, ulong);
    void                 slotSizeStop ();
    void                 slotSizeDetermine ();

};  // class KFilePropsPlugin


class KFilePermissionsPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:

%If ( KDE_3_2_0 -  )

    enum PermissionsMode
    {
        PermissionsOnlyFiles, 
        PermissionsOnlyDirs, 
        PermissionsOnlyLinks, 
        PermissionsMixed
    };


    enum PermissionsTarget
    {
        PermissionsOwner, 
        PermissionsGroup, 
        PermissionsOthers
    };

%End

                         KFilePermissionsPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

};  // class KFilePermissionsPropsPlugin


class KURLPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KURLPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

};  // class KURLPropsPlugin


class KBindingPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KBindingPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

};  // class KBindingPropsPlugin


class KDevicePropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KDevicePropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

};  // class KDevicePropsPlugin


%If ( KDE_3_2_0 -  )

class KDesktopPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KDesktopPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

public slots:
    void                 slotAddFiletype ();
    void                 slotDelFiletype ();
    void                 slotBrowseExec ();
    void                 slotAdvanced ();
    void                 slotSelectMimetype ();

};  // class KDesktopPropsPlugin

%End


class KExecPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KExecPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

public slots:
    void                 slotBrowseExec ();

};  // class KExecPropsPlugin


class KApplicationPropsPlugin : KPropsDlgPlugin
{
%TypeHeaderCode
#include <kpropertiesdialog.h>
%End


public:
                         KApplicationPropsPlugin (KPropertiesDialog*);
    virtual void         applyChanges ();
    static bool          supports (KFileItemList);

public slots:
    void                 slotDelExtension ();
    void                 slotAddExtension ();

};  // class KApplicationPropsPlugin

