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

import org.kde.qt.Qt;
import org.kde.qt.QListBox;
import org.kde.qt.QMetaObject;
import org.kde.qt.QtSupport;
import java.util.ArrayList;
import org.kde.qt.QPushButton;
import org.kde.qt.QWidget;
import org.kde.qt.QGroupBox;

/**

 An editable listbox
 This class provides a editable listbox ;-), this means
 a listbox which is accompanied by a line edit to enter new
 items into the listbox and pushbuttons to add and remove
 items from the listbox and two buttons to move items up and down.
 \image html keditlistbox.png "KDE Edit List Box Widget"
  See {@link KEditListBoxSignals} for signals emitted by KEditListBox
		@short    An editable listbox

*/
public class KEditListBox extends QGroupBox  {
	protected KEditListBox(Class dummy){super((Class) null);}

	/**	
		 Enumeration of the buttons, the listbox offers. Specify them in the
		 constructor in the buttons parameter, or in setButtons.
		       		@short    Enumeration of the buttons, the listbox offers.
	*/
	public static final int Add = 1;
	public static final int Remove = 2;
	public static final int UpDown = 4;

	public static final int All = Add|Remove|UpDown;
	
	public native QMetaObject metaObject();
	public native String className();
	/**	
		 Create an editable listbox.
			 If <code>checkAtEntering</code> is true, after every character you type
		 in the line edit KEditListBox will enable or disable
		 the Add-button, depending whether the current content of the
		 line edit is already in the listbox. Maybe this can become a
		 performance hit with large lists on slow machines.
		 If <code>checkAtEntering</code> is false,
		 it will be checked if you press the Add-button. It is not
		 possible to enter items twice into the listbox.
		       		@short    Create an editable listbox.
	*/
	public KEditListBox(QWidget parent, String name, boolean checkAtEntering, int buttons) {
		super((Class) null);
		newKEditListBox(parent,name,checkAtEntering,buttons);
	}
	private native void newKEditListBox(QWidget parent, String name, boolean checkAtEntering, int buttons);
	public KEditListBox(QWidget parent, String name, boolean checkAtEntering) {
		super((Class) null);
		newKEditListBox(parent,name,checkAtEntering);
	}
	private native void newKEditListBox(QWidget parent, String name, boolean checkAtEntering);
	public KEditListBox(QWidget parent, String name) {
		super((Class) null);
		newKEditListBox(parent,name);
	}
	private native void newKEditListBox(QWidget parent, String name);
	public KEditListBox(QWidget parent) {
		super((Class) null);
		newKEditListBox(parent);
	}
	private native void newKEditListBox(QWidget parent);
	public KEditListBox() {
		super((Class) null);
		newKEditListBox();
	}
	private native void newKEditListBox();
	/**	
		 Create an editable listbox.
			 The same as the other constructor, additionally it takes
		 <code>title</code>, which will be the title of the frame around the listbox.
		       		@short    Create an editable listbox.
	*/
	public KEditListBox(String title, QWidget parent, String name, boolean checkAtEntering, int buttons) {
		super((Class) null);
		newKEditListBox(title,parent,name,checkAtEntering,buttons);
	}
	private native void newKEditListBox(String title, QWidget parent, String name, boolean checkAtEntering, int buttons);
	public KEditListBox(String title, QWidget parent, String name, boolean checkAtEntering) {
		super((Class) null);
		newKEditListBox(title,parent,name,checkAtEntering);
	}
	private native void newKEditListBox(String title, QWidget parent, String name, boolean checkAtEntering);
	public KEditListBox(String title, QWidget parent, String name) {
		super((Class) null);
		newKEditListBox(title,parent,name);
	}
	private native void newKEditListBox(String title, QWidget parent, String name);
	public KEditListBox(String title, QWidget parent) {
		super((Class) null);
		newKEditListBox(title,parent);
	}
	private native void newKEditListBox(String title, QWidget parent);
	public KEditListBox(String title) {
		super((Class) null);
		newKEditListBox(title);
	}
	private native void newKEditListBox(String title);
	/**	
		 Another constructor, which allows to use a custom editing widget
		 instead of the standard KLineEdit widget. E.g. you can use a
		 KURLRequester or a KComboBox as input widget. The custom
		 editor must consist of a lineedit and optionally another widget that
		 is used as representation. A KComboBox or a KURLRequester have a
		 KLineEdit as child-widget for example, so the KComboBox is used as
		 the representation widget.
				@short    Another constructor, which allows to use a custom editing widget  instead of the standard KLineEdit widget.
		@see KURLRequester#customEditor
	*/
	// KEditListBox* KEditListBox(const QString& arg1,const KEditListBox::CustomEditor& arg2,QWidget* arg3,const char* arg4,bool arg5,int arg6); >>>> NOT CONVERTED
	// KEditListBox* KEditListBox(const QString& arg1,const KEditListBox::CustomEditor& arg2,QWidget* arg3,const char* arg4,bool arg5); >>>> NOT CONVERTED
	// KEditListBox* KEditListBox(const QString& arg1,const KEditListBox::CustomEditor& arg2,QWidget* arg3,const char* arg4); >>>> NOT CONVERTED
	// KEditListBox* KEditListBox(const QString& arg1,const KEditListBox::CustomEditor& arg2,QWidget* arg3); >>>> NOT CONVERTED
	// KEditListBox* KEditListBox(const QString& arg1,const KEditListBox::CustomEditor& arg2); >>>> NOT CONVERTED
	/**	
		 Return a pointer to the embedded QListBox.
		       		@short    Return a pointer to the embedded QListBox.
	*/
	public native QListBox listBox();
	/**	
		 Return a pointer to the embedded QLineEdit.
		       		@short    Return a pointer to the embedded QLineEdit.
	*/
	public native KLineEdit lineEdit();
	/**	
		 Return a pointer to the Add button
		       		@short    Return a pointer to the Add button
	*/
	public native QPushButton addButton();
	/**	
		 Return a pointer to the Remove button
		       		@short    Return a pointer to the Remove button
	*/
	public native QPushButton removeButton();
	/**	
		 Return a pointer to the Up button
		       		@short    Return a pointer to the Up button
	*/
	public native QPushButton upButton();
	/**	
		 Return a pointer to the Down button
		       		@short    Return a pointer to the Down button
	*/
	public native QPushButton downButton();
	/**	
		 See QListBox.count()
		       		@short    See QListBox.count()
	*/
	public native int count();
	/**	
		 See QListBox.insertStringList()
		       		@short    See QListBox.insertStringList()
	*/
	public native void insertStringList(String[] list, int index);
	public native void insertStringList(String[] list);
	/**	
		 See QListBox.insertStringList()
		       		@short    See QListBox.insertStringList()
	*/
	public native void insertStrList(String[] list, int index);
	public native void insertStrList(String[] list);
	/**	
		 See QListBox.insertStrList()
		       		@short    See QListBox.insertStrList()
	*/
	public native void insertStrList(String[] list, int numStrings, int index);
	/**	
		 See QListBox.insertItem()
		       		@short    See QListBox.insertItem()
	*/
	public native void insertItem(String text, int index);
	public native void insertItem(String text);
	/**	
		 Clears both the listbox and the line edit.
		       		@short    Clears both the listbox and the line edit.
	*/
	public native void clear();
	/**	
		 See QListBox.text()
		       		@short    See QListBox.text()
	*/
	public native String text(int index);
	/**	
		 See QListBox.currentItem()
		       		@short    See QListBox.currentItem()
	*/
	public native int currentItem();
	/**	
		 See QListBox.currentText()
		       		@short    See QListBox.currentText()
	*/
	public native String currentText();
	/**	
				@return a stringlist of all items in the listbox
       
		@short
	*/
	public native ArrayList items();
	/**	
		 Clears the listbox and sets the contents to <code>items</code>
				@short    Clears the listbox and sets the contents to <code>items</code>
	*/
	public native void setItems(String[] items);
	/**	
		 Returns which buttons are visible
		       		@short    Returns which buttons are visible
	*/
	public native int buttons();
	/**	
		 Specifies which buttons should be visible
		       		@short    Specifies which buttons should be visible
	*/
	public native void setButtons(int buttons);
	protected native void moveItemUp();
	protected native void moveItemDown();
	protected native void addItem();
	protected native void removeItem();
	protected native void enableMoveButtons(int index);
	protected native void typedSomething(String text);
	/** 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();
}
