//Auto-generated by kalyptus. DO NOT EDIT.
package org.kde.koala;

import org.kde.qt.Qt;
import org.kde.qt.QMetaObject;
import org.kde.qt.QtSupport;
import org.kde.qt.QWidget;
import org.kde.qt.QWidget;

/**

 It shows the list of available plugins on top (if there's more than one
 category this is a TabWidget) and the configuration of the selected plugin
 below that.
 Since the user needs a way to know what a specific plugin does every plugin
 sould install a desktop file containing a name, comment and category field.
 The category is usefull for applications that can use different kinds of
 plugins like a playlist, skin or visualization.
 The location of these desktop files is the
 share/apps/&lt;instancename&gt;/&lt;plugindir&gt; directory. But if you need
 you may use a different directory.
 Often a program has more than one kind of plugin. In that case you want to
 make a visible distinction between those plugins. All you have to do is to
 create a KPluginSelectionWidget for every category and then add them all
 to the KPluginSelector.
 See {@link KPluginSelectorSignals} for signals emitted by KPluginSelector
		@author Matthias Kretz <kretz@kde.org>

		@short A widget to select what plugins to load and configure the plugins.

*/
public class KPluginSelector extends QWidget  {
	protected KPluginSelector(Class dummy){super((Class) null);}
	public native QMetaObject metaObject();
	public native String className();
	/**	
		 Create a new KPluginSelector.
		         		@short    Create a new KPluginSelector.
	*/
	public KPluginSelector(QWidget parent, String name) {
		super((Class) null);
		newKPluginSelector(parent,name);
	}
	private native void newKPluginSelector(QWidget parent, String name);
	public KPluginSelector(QWidget parent) {
		super((Class) null);
		newKPluginSelector(parent);
	}
	private native void newKPluginSelector(QWidget parent);
	/**	
		 Add a list of KParts plugins
			 If you want to support non-KParts plugins use the following
		 function.
			 The information about the plugins will be loaded from the
		 share/apps/&lt;instancename&gt;/kpartplugins directory.
			@param instanceName The name of the KInstance of the plugin's parent.
			@param catname The translated name of the category. This is the
		                     name that is shown in the TabWidget if there is
		                     more than one category.
			@param category When you have different categories of KParts
		                     plugins you distinguish between the plugins using
		                     the Category key in the .desktop file. Use this
		                     parameter to select only those KParts plugins
		                     with the Category key == <code>category.</code> If <code>category</code> is not set the Category key is ignored
		                     and all plugins are shown.
			@param config The KConfig object that holds the state of the
		                     plugins being enabled or not. By default it will
		                     use instance.config(). It is recommended to
		                     always pass a KConfig object if you use
		                     KSettings.PluginPage since you never know from where the
		                     page will be called (think global config app).
		                     For example KViewCanvas passes KSimpleConfig(
		                     "kviewcanvas" ).
		         		@short    Add a list of KParts plugins
	*/
	public native void addPlugins(String instanceName, String catname, String category, KConfig config);
	public native void addPlugins(String instanceName, String catname, String category);
	public native void addPlugins(String instanceName, String catname);
	public native void addPlugins(String instanceName);
	/**	
		 Add a list of KParts plugins. Convenience method for the one above.
		         		@short    Add a list of KParts plugins.
	*/
	public native void addPlugins(KInstanceInterface instance, String catname, String category, KConfig config);
	public native void addPlugins(KInstanceInterface instance, String catname, String category);
	public native void addPlugins(KInstanceInterface instance, String catname);
	public native void addPlugins(KInstanceInterface instance);
	/**	
		 Add a list of non-KParts plugins
			@param plugininfos A list of KPluginInfo objects containing the
		                     necessary information for the plugins you want to
		                     add to the list.
			@param catname The translated name of the category. This is the
		                     name that is shown in the TabWidget if there is
		                     more than one category.
			@param category When you have different categories of KParts
		                     plugins you distinguish between the plugins using
		                     the Category key in the .desktop file. Use this
		                     parameter to select only those KParts plugins
		                     with the Category key == <code>category.</code> If <code>category</code> is not set the Category key is ignored
		                     and all plugins are shown.
			@param config The KConfig object that holds the state of the
		                     plugins being enabled or not. By default it will
		                     use KGlobal.config(). It is recommended to
		                     always pass a KConfig object if you use
		                     KSettings.PluginPage since you never know from where the
		                     page will be called (think global config app).
		                     For example KViewCanvas passes KSimpleConfig(
		                     "kviewcanvas" ).
		         		@short    Add a list of non-KParts plugins
	*/
	// void addPlugins(const QValueList<KPluginInfo*>& arg1,const QString& arg2,const QString& arg3,KConfig* arg4); >>>> NOT CONVERTED
	// void addPlugins(const QValueList<KPluginInfo*>& arg1,const QString& arg2,const QString& arg3); >>>> NOT CONVERTED
	// void addPlugins(const QValueList<KPluginInfo*>& arg1,const QString& arg2); >>>> NOT CONVERTED
	// void addPlugins(const QValueList<KPluginInfo*>& arg1); >>>> NOT CONVERTED
	/**	
		 Set whether the area for showing the KCMs of the plugins should be
		 hidden if the plugin doesn't have a KCM or whether the layout should
		 rather stay static and only an message should be shown.
			 By default the config page is not hidden.
		         		@short    Set whether the area for showing the KCMs of the plugins should be  hidden if the plugin doesn't have a KCM or whether the layout should  rather stay static and only an message should be shown.
	*/
	public native void setShowEmptyConfigPage(boolean arg1);
	/**	
		 Load the state of the plugins (selected or not) from the KPluginInfo
		 objects. For KParts plugins everything should work automatically. For
		 your own type of plugins you might need to reimplement the
		 KPluginInfo.isPluginEnabled() method. If that doesn't fit your needs
		 you can also reimplement this method.
		         		@short    Load the state of the plugins (selected or not) from the KPluginInfo  objects.
	*/
	public native void load();
	/**	
		 Save the configuration 
		         		@short    Save the configuration
	*/
	public native void save();
	/**	
		 Change to applications defaults
		         		@short    Change to applications defaults
	*/
	public native void defaults();
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}
