/***************************************************************************
                            kde_KPropsDlgPlugin.h -  description
                             -------------------
    begin                : Wed Feb  6 15:12:26 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Feb  6 15:12:26 2002, using kalyptus 0.9.
 ***************************************************************************/

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

#ifndef KDE_KPROPSDLGPLUGIN
#define KDE_KPROPSDLGPLUGIN

#include <qtc/qtc_types.h>

#include <kdec/kde_types.h>

/**

 A Plugin in the Properties dialog
 This is an abstract class. You must inherit from this class
 to build a new kind of page.
 A plugin in itself is just a library containing code, not a dialog's page.
 It's up to the plugin to insert pages into the parent dialog.

 To make a plugin available, define a service that implements the KPropsDlg/Plugin
 servicetype, as well as the mimetypes for which the plugin should be created.
 For instance, ServiceTypes=KPropsDlg/Plugin,text/html,application/x-mymimetype.

 You can also include X-KDE-Protocol=file if you want that plugin
 to be loaded only for local files, for instance.
 
 @short 
 A Plugin in the Properties dialog
 This is an abstract class.
*/

/** 
 Constructor
 To insert tabs into the properties dialog, use the add methods provided by
 KDialogBase (the properties dialog is a KDialogBase).
   
*/
kde_KPropsDlgPlugin * kde_new_KPropsDlgPlugin(kde_KPropertiesDialog* _props);
void kde_del_KPropsDlgPlugin( kde_KPropsDlgPlugin* p );

/** 
 Applies all changes to the file.
 This function is called when the user presses 'Ok'. The last plugin inserted
 is called first.
   
*/
void kde_KPropsDlgPlugin_applyChanges(kde_KPropsDlgPlugin* instPointer);
void kde_KPropsDlgPlugin_setDirty(kde_KPropsDlgPlugin* instPointer,int b);
int kde_KPropsDlgPlugin_isDirty(kde_KPropsDlgPlugin* instPointer);
void kde_KPropsDlgPlugin_setDirty1(kde_KPropsDlgPlugin* instPointer);

/** 
 Convenience method for most ::supports methods

*/
int kde_KPropsDlgPlugin_isDesktopFile( kde_KFileItem* _item);

#endif
