kdeui Library API Documentation

kcombobox.h

00001 /* This file is part of the KDE libraries
00002 
00003    Copyright (c) 2000,2001 Dawit Alemayehu <adawit@kde.org>
00004    Copyright (c) 2000,2001 Carsten Pfeiffer <pfeiffer@kde.org>
00005 
00006    This library is free software; you can redistribute it and/or
00007    modify it under the terms of the GNU Lesser General Public
00008    License (LGPL) as published by the Free Software Foundation; either
00009    version 2 of the License, or (at your option) any later version.
00010 
00011    This library is distributed in the hope that it will be useful,
00012    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014    Lesser General Public License for more details.
00015 
00016    You should have received a copy of the GNU Lesser General Public License
00017    along with this library; see the file COPYING.LIB.  If not, write to
00018    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00019    Boston, MA 02111-1307, USA.
00020 */
00021 
00022 #ifndef _KCOMBOBOX_H
00023 #define _KCOMBOBOX_H
00024 
00025 #include <qlineedit.h>
00026 #include <qcombobox.h>
00027 
00028 #include <kcompletion.h>
00029 
00030 class QListBoxItem;
00031 class QPopupMenu;
00032 class QLineEdit;
00033 
00034 class KCompletionBox;
00035 class KURL;
00036 
00127 class KComboBox : public QComboBox, public KCompletionBase
00128 {
00129   Q_OBJECT
00130   Q_PROPERTY( bool autoCompletion READ autoCompletion WRITE setAutoCompletion )
00131   Q_PROPERTY( bool contextMenuEnabled READ isContextMenuEnabled WRITE setContextMenuEnabled )
00132   Q_PROPERTY( bool urlDropsEnabled READ isURLDropsEnabled WRITE setURLDropsEnabled )
00133 
00134 public:
00135 
00143     KComboBox( QWidget *parent=0, const char *name=0 );
00144 
00154     KComboBox( bool rw, QWidget *parent=0, const char *name=0 );
00155 
00159     virtual ~KComboBox();
00160 
00166     void setEditURL( const KURL& url );
00167 
00173     void insertURL( const KURL& url, int index = -1 );
00174 
00181     void insertURL( const QPixmap& pixmap, const KURL& url, int index = -1 );
00182 
00188     void changeURL( const KURL& url, int index );
00189 
00195     void changeURL( const QPixmap& pixmap, const KURL& url, int index );
00196 
00205     int cursorPosition() const { return ( lineEdit() ) ? lineEdit()->cursorPosition() : -1; }
00206 
00217     virtual void setAutoCompletion( bool autocomplete );
00218 
00228     bool autoCompletion() const {
00229         return completionMode() == KGlobalSettings::CompletionAuto;
00230     }
00231 
00247     virtual void setContextMenuEnabled( bool showMenu );
00248 
00252     bool isContextMenuEnabled() const { return m_bEnableMenu; }
00253 
00261     void setURLDropsEnabled( bool enable );
00262 
00266     bool isURLDropsEnabled() const;
00267 
00277     bool contains( const QString& text ) const;
00278 
00293     void setTrapReturnKey( bool trap );
00294 
00301     bool trapReturnKey() const;
00302 
00306     virtual bool eventFilter( QObject *, QEvent * );
00307 
00317     KCompletionBox * completionBox( bool create = true );
00318 
00325     virtual void setLineEdit( QLineEdit * );
00326 
00327 signals:
00333     void returnPressed();
00334 
00344     void returnPressed( const QString& );
00345 
00354     void completion( const QString& );
00355 
00359     void substringCompletion( const QString& );
00360 
00372     void textRotation( KCompletionBase::KeyBindingType );
00373 
00378     void completionModeChanged( KGlobalSettings::Completion );
00379 
00389     void aboutToShowContextMenu( QPopupMenu * p );
00390 
00391 public slots:
00392 
00410     void rotateText( KCompletionBase::KeyBindingType type );
00411 
00418     virtual void setCompletedText( const QString& );
00419 
00424     void setCompletedItems( const QStringList& items );
00425 
00431     void setCurrentItem( const QString& item, bool insert = false, int index = -1 );
00436     void setCurrentItem(int index) { QComboBox::setCurrentItem(index); }
00437 
00438 protected slots:
00439 
00443     virtual void itemSelected( QListBoxItem* ) {};
00444 
00456     virtual void makeCompletion( const QString& );
00457 
00458 protected:
00459     /*
00460     * This function simply sets the lineedit text and
00461     * highlights the text appropriately if the boolean
00462     * value is set to true.
00463     *
00464     * @param
00465     * @param
00466     */
00467     virtual void setCompletedText( const QString& /* */, bool /*marked*/ );
00468 
00472     virtual void create( WId = 0, bool initializeWindow = true,
00473                          bool destroyOldWindow = true );
00474 
00475     virtual void wheelEvent( QWheelEvent *ev );
00476 
00477 private slots:
00478     void lineEditDeleted();
00479 
00480 private:
00484     void init();
00485     bool m_bEnableMenu; // ### BCI: unused, remove in KDE4
00486     bool m_trapReturnKey; // ### BCI: unused, remove in KDE4
00487 
00488 protected:
00489     virtual void virtual_hook( int id, void* data );
00490 
00491 private:
00492     class KComboBoxPrivate;
00493     KComboBoxPrivate *d;
00494 };
00495 
00496 
00497 class KPixmapProvider;
00498 
00515 class KHistoryCombo : public KComboBox
00516 {
00517     Q_OBJECT
00518     Q_PROPERTY( QStringList historyItems READ historyItems WRITE setHistoryItems )
00519 
00520 public:
00540     KHistoryCombo( QWidget *parent = 0L, const char *name = 0L );
00541 
00542     // ### merge these two constructors
00549     KHistoryCombo( bool useCompletion,
00550            QWidget *parent = 0L, const char *name = 0L );
00551 
00555     ~KHistoryCombo();
00556 
00563     inline void setHistoryItems( QStringList items ) {
00564         setHistoryItems(items, false);
00565     }
00566 
00608     void setHistoryItems( QStringList items, bool setCompletionList );
00609 
00616     QStringList historyItems() const;
00617 
00625     bool removeFromHistory( const QString& item );
00626 
00639     void setPixmapProvider( KPixmapProvider *prov );
00640 
00646     KPixmapProvider * pixmapProvider() const { return myPixProvider; }
00647 
00652     void reset() { slotReset(); }
00653 
00654 public slots:
00674     void addToHistory( const QString& item );
00675 
00679     void clearHistory();
00680 
00681 signals:
00685     void cleared();
00686 
00687 protected:
00691     virtual void keyPressEvent( QKeyEvent * );
00692 
00696     virtual void wheelEvent( QWheelEvent *ev );
00697 
00706     void insertItems( const QStringList& items );
00707 
00711     bool useCompletion() const { return compObj() != 0L; }
00712 
00713 private slots:
00717     void slotReset();
00718 
00723     void slotClear();
00724 
00728     void addContextMenuItems( QPopupMenu* );
00729 
00730 private:
00731     void init( bool useCompletion );
00732     void rotateUp();
00733     void rotateDown();
00734 
00738     int myIterateIndex;
00739 
00743     QString myText;
00744 
00749     bool myRotated;
00750     KPixmapProvider *myPixProvider;
00751 
00752 protected:
00753     virtual void virtual_hook( int id, void* data );
00754 private:
00755     class KHistoryComboPrivate;
00756     KHistoryComboPrivate *d;
00757 };
00758 
00759 
00760 #endif
00761 
KDE Logo
This file is part of the documentation for kdeui Library Version 3.2.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Mar 4 22:43:50 2004 by doxygen 1.3.6-20040222 written by Dimitri van Heesch, © 1997-2003