KDevelop API Documentation

kdeveditlistbox.h

Go to the documentation of this file.
00001 #ifndef _KDEVEDITLISTBOX_H_
00002 #define _KDEVEDITLISTBOX_H_
00003 
00004 //---------copy-of-kde-3.1-----------------------------------------------------
00005 #include <kdeversion.h>
00006 
00007 #if KDE_VERSION <= 305
00008 
00009 #include <qgroupbox.h>
00010 #include <qobjectlist.h>
00011 #include <qlistbox.h>
00012 #include <klineedit.h>
00013 #include <knotifyclient.h>
00014 #include <kcombobox.h>
00015 #include <assert.h>
00016 
00017 class QPushButton;
00018 
00019 namespace KDevCompat {
00020 
00021 class KEditListBoxPrivate
00022 {
00023 public:
00024     bool m_checkAtEntering;
00025     int buttons;
00026 };
00027 
00036 class KEditListBox : public QGroupBox
00037 {
00038    Q_OBJECT
00039 
00040 public:
00042     class CustomEditor
00043     {
00044     public:
00045         CustomEditor()
00046             : m_representationWidget( 0L ),
00047               m_lineEdit( 0L ) {}
00048         CustomEditor( QWidget *repWidget, KLineEdit *edit )
00049             : m_representationWidget( repWidget ),
00050               m_lineEdit( edit ) {}
00051         CustomEditor( KComboBox *combo );
00052 
00053         void setRepresentationWidget( QWidget *repWidget ) {
00054             m_representationWidget = repWidget;
00055         }
00056         void setLineEdit( KLineEdit *edit ) {
00057             m_lineEdit = edit;
00058         }
00059 
00060         virtual QWidget   *representationWidget() const {
00061             return m_representationWidget;
00062         }
00063         virtual KLineEdit *lineEdit() const {
00064             return m_lineEdit;
00065         }
00066 
00067     protected:
00068         QWidget *m_representationWidget;
00069         KLineEdit *m_lineEdit;
00070     };
00071 
00072    public:
00073 
00078       enum Button { Add = 1, Remove = 2, UpDown = 4, All = Add|Remove|UpDown };
00079 
00092       KEditListBox(QWidget *parent = 0, const char *name = 0,
00093            bool checkAtEntering=false, int buttons = All );
00100       KEditListBox(const QString& title, QWidget *parent = 0,
00101            const char *name = 0, bool checkAtEntering=false,
00102            int buttons = All );
00103 
00116       KEditListBox( const QString& title,
00117                     const CustomEditor &customEditor,
00118                     QWidget *parent = 0, const char *name = 0,
00119                     bool checkAtEntering = false, int buttons = All );
00120 
00121       virtual ~KEditListBox();
00122 
00126       QListBox* listBox() const     { return m_listBox; }
00130       KLineEdit* lineEdit() const     { return m_lineEdit; }
00134       QPushButton* addButton() const     { return servNewButton; }
00138       QPushButton* removeButton() const     { return servRemoveButton; }
00142       QPushButton* upButton() const     { return servUpButton; }
00146       QPushButton* downButton() const     { return servDownButton; }
00147 
00151       int count() const   { return int(m_listBox->count()); }
00155       void insertStringList(const QStringList& list, int index=-1);
00159       void insertStrList(const QStrList* list, int index=-1);
00163       void insertStrList(const QStrList& list, int index=-1);
00167       void insertStrList(const char ** list, int numStrings=-1, int index=-1);
00171       void insertItem(const QString& text, int index=-1) {m_listBox->insertItem(text,index);}
00175       void clear();
00179       QString text(int index) const { return m_listBox->text(index); }
00183       int currentItem() const;
00187       QString currentText() const  { return m_listBox->currentText(); }
00188 
00192       QStringList items() const;
00193 
00194    signals:
00195       void changed();
00196 
00197    protected slots:
00198       //the names should be self-explaining
00199       void moveItemUp();
00200       void moveItemDown();
00201       void addItem();
00202       void removeItem();
00203       void enableMoveButtons(int index);
00204       void typedSomething(const QString& text);
00205 
00206    private:
00207       QListBox *m_listBox;
00208       QPushButton *servUpButton, *servDownButton;
00209       QPushButton *servNewButton, *servRemoveButton;
00210       KLineEdit *m_lineEdit;
00211 
00212       //this is called in both ctors, to avoid code duplication
00213       void init( bool checkAtEntering, int buttons,
00214                  QWidget *representationWidget = 0L );
00215 
00216    protected:
00217       virtual void virtual_hook( int id, void* data );
00218    private:
00219       //our lovely private d-pointer
00220       KEditListBoxPrivate *d;
00221 };
00222 
00223 }; //namespace
00224 
00225 #endif // KDE_VERSION
00226 
00227 #endif
00228 
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:51 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003