/***************************************************************************
                            KPropsDlgPlugin.java -  description
                             -------------------
    begin                : Sun Jan 27 16:22:17 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd.
    email                : Richard_Dale@tipitina.demon.co.uk
    generated by         : duke@tipitina on Sun Jan 27 16:22:17 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This program 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.                                   *
 *                                                                         *
***************************************************************************/

package org.kde.koala;

import org.kde.qt.*;
import java.util.*;
import java.lang.Error;

/**

 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.
 
 See {@link KPropsDlgPluginSignals} for signals emitted by KPropsDlgPlugin.

 See {@link KPropsDlgPluginEventHandling} for event handlers to override in subclasses of KPropsDlgPlugin.

 @short 
 A Plugin in the Properties dialog
 This is an abstract class.
*/
public class KPropsDlgPlugin extends QObject  {
	protected KPropsDlgPlugin(Class dummy){super((Class) null);}

	private native void newKPropsDlgPlugin( KPropertiesDialog _props);

/** 
 Constructor
 To insert tabs into the properties dialog, use the add methods provided by
 KDialogBase (the properties dialog is a KDialogBase).
   
*/
	public KPropsDlgPlugin( KPropertiesDialog _props) {
		super((Class) null);
		newKPropsDlgPlugin( _props);
	}
	protected native void finalize() throws InternalError;
	public native void dispose();
	public native boolean isDisposed();

/** 
 Applies all changes to the file.
 This function is called when the user presses 'Ok'. The last plugin inserted
 is called first.
   
*/
	public native void applyChanges();
	public native void setDirty( boolean b);
	public native boolean isDirty();
	public native void setDirty();

/** 
 Convenience method for most .supports methods

*/
	public static native boolean isDesktopFile( KFileItem _item);
}
