kdeui Library API Documentation

klistview.h

00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2000 Reginald Stadlbauer <reggie@kde.org> 00003 Copyright (C) 2000 Charles Samuels <charles@kde.org> 00004 Copyright (C) 2000 Peter Putzer <putzer@kde.org> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License version 2 as published by the Free Software Foundation. 00009 00010 This library is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 Library General Public License for more details. 00014 00015 You should have received a copy of the GNU Library General Public License 00016 along with this library; see the file COPYING.LIB. If not, write to 00017 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00018 Boston, MA 02111-1307, USA. 00019 */ 00020 #ifndef KLISTVIEW_H 00021 #define KLISTVIEW_H 00022 00023 #include <qlistview.h> 00024 00025 #include <qptrlist.h> 00026 #include <kdelibs_export.h> 00027 00028 class QDragObject; 00029 class KConfig; 00030 class KLineEdit; 00053 class KDEUI_EXPORT KListView : public QListView 00054 { 00055 friend class KListViewItem; 00056 00057 Q_OBJECT 00058 Q_ENUMS( SelectionModeExt ) 00059 Q_PROPERTY( bool fullWidth READ fullWidth WRITE setFullWidth ) 00060 Q_PROPERTY( bool itemsMovable READ itemsMovable WRITE setItemsMovable ) 00061 Q_PROPERTY( bool itemsRenameable READ itemsRenameable WRITE setItemsRenameable ) 00062 Q_PROPERTY( bool dragEnabled READ dragEnabled WRITE setDragEnabled ) 00063 Q_PROPERTY( bool autoOpen READ autoOpen WRITE setAutoOpen ) 00064 Q_PROPERTY( bool dropVisualizer READ dropVisualizer WRITE setDropVisualizer ) 00065 Q_PROPERTY( int tooltipColumn READ tooltipColumn WRITE setTooltipColumn ) 00066 Q_PROPERTY( int dropVisualizerWidth READ dropVisualizerWidth WRITE setDropVisualizerWidth ) 00067 Q_PROPERTY( QColor alternateBackground READ alternateBackground WRITE setAlternateBackground ) 00068 Q_PROPERTY( bool shadeSortColumn READ shadeSortColumn WRITE setShadeSortColumn ) 00069 00070 Q_OVERRIDE( SelectionModeExt selectionMode READ selectionModeExt WRITE setSelectionModeExt ) 00071 00072 public: 00104 enum SelectionModeExt { 00105 Single = QListView::Single, 00106 Multi = QListView::Multi, 00107 Extended = QListView::Extended, 00108 NoSelection = QListView::NoSelection, 00109 FileManager 00110 }; 00111 00118 KListView (QWidget *parent = 0, const char *name = 0); 00119 00123 virtual ~KListView(); 00124 00132 virtual void setAcceptDrops (bool); 00133 00143 virtual bool isExecuteArea( const QPoint& point ); 00144 00150 bool isExecuteArea( int x ); 00151 00157 QPtrList<QListViewItem> selectedItems() const; 00158 00169 QPtrList<QListViewItem> selectedItems(bool includeHiddenItems) const; // ### BIC: KDE 4: use an implicitly shared class! (QValutList?) and merge with above, default to true 00170 00177 void moveItem(QListViewItem *item, QListViewItem *parent, QListViewItem *after); 00178 00184 QListViewItem *lastItem() const; 00185 00191 QListViewItem* lastChild () const; 00192 00199 KLineEdit* renameLineEdit() const; 00200 00207 bool itemsMovable() const; 00208 00214 bool itemsRenameable() const; 00215 00221 bool dragEnabled() const; 00222 00228 bool autoOpen() const; 00229 00235 bool isRenameable (int column) const; 00236 00242 bool dropVisualizer() const; 00243 00249 int tooltipColumn() const; 00250 00257 bool createChildren() const KDE_DEPRECATED; 00258 00264 bool dropHighlighter() const; 00265 00272 int dropVisualizerWidth () const; 00273 00280 SelectionModeExt selectionModeExt () const; 00281 00287 int itemIndex( const QListViewItem *item ) const; 00288 00294 QListViewItem* itemAtIndex(int index); 00295 00300 void setFullWidth() KDE_DEPRECATED; 00301 00307 void setFullWidth(bool fullWidth); 00308 00314 bool fullWidth() const; 00315 00321 virtual int addColumn(const QString& label, int width = -1); 00325 virtual int addColumn(const QIconSet& iconset, const QString& label, int width = -1); 00331 virtual void removeColumn(int index); 00332 00342 void setAlternateBackground(const QColor &c); 00348 const QColor &alternateBackground() const; 00349 00357 void saveLayout(KConfig *config, const QString &group) const; 00365 void restoreLayout(KConfig *config, const QString &group); 00372 virtual void setSorting(int column, bool ascending = true); 00373 00377 int columnSorted(void) const; 00378 00382 bool ascendingSort(void) const; 00383 00387 virtual void takeItem(QListViewItem *i); 00388 00395 void setShadeSortColumn(bool shadeSortColumn); 00396 00403 bool shadeSortColumn(void) const; 00404 signals: 00405 00415 void executed( QListViewItem *item ); 00416 00428 void executed( QListViewItem *item, const QPoint &pos, int c ); 00429 00440 void dropped (QDropEvent * e, QListViewItem *after); 00441 00454 void dropped (KListView* list, QDropEvent* e, QListViewItem* after); 00455 00468 void dropped (KListView* list, QDropEvent* e, QListViewItem* parent, QListViewItem* after); 00469 00481 void dropped (QDropEvent* e, QListViewItem* parent, QListViewItem* after); 00482 00489 void moved(); 00490 00499 void aboutToMove(); 00500 00512 void moved (QListViewItem *item, QListViewItem *afterFirst, QListViewItem *afterNow); 00513 00514 00520 void moved(QPtrList<QListViewItem> &items, QPtrList<QListViewItem> &afterFirst, QPtrList<QListViewItem> &afterNow); 00521 00529 void itemRenamed(QListViewItem* item, const QString &str, int col); 00530 00534 void itemRenamed(QListViewItem* item); 00535 00546 void menuShortCutPressed (KListView* list, QListViewItem* item); 00547 00556 void contextMenu (KListView* l, QListViewItem* i, const QPoint& p); 00557 00558 void itemAdded(QListViewItem *item); 00559 void itemRemoved(QListViewItem *item); 00560 00561 public slots: 00565 virtual void rename(QListViewItem *item, int c); 00566 00577 void setRenameable (int column, bool yesno=true); 00578 00585 virtual void setItemsMovable(bool b); 00586 00594 virtual void setItemsRenameable(bool b); 00595 00600 virtual void setDragEnabled(bool b); 00601 00605 virtual void setAutoOpen(bool b); 00606 00612 virtual void setDropVisualizer(bool b); 00613 00618 void setDropVisualizerWidth (int w); 00619 00626 virtual void setTooltipColumn(int column); 00627 00633 virtual void setDropHighlighter(bool b); 00634 00641 virtual void setCreateChildren(bool b) KDE_DEPRECATED; 00642 00648 void setSelectionModeExt (SelectionModeExt mode); 00649 00654 void setTabOrderedRenaming(bool b); 00655 00660 bool tabOrderedRenaming() const; 00661 00662 protected: 00671 inline bool below (const QRect& rect, const QPoint& p) 00672 { 00673 return (p.y() > (rect.top() + (rect.bottom() - rect.top())/2)); 00674 } 00675 00685 inline bool below (QListViewItem* i, const QPoint& p) 00686 { 00687 return below (itemRect(i), contentsToViewport(p)); 00688 } 00689 00694 virtual bool event( QEvent * ); 00695 00700 void emitExecute( QListViewItem *item, const QPoint &pos, int c ); 00701 00709 virtual void focusInEvent(QFocusEvent* fe); 00710 00718 virtual void focusOutEvent( QFocusEvent *fe ); 00719 00727 virtual void leaveEvent( QEvent *e ); 00728 00732 virtual QString tooltip(QListViewItem* item, int column) const; 00733 00737 virtual bool showTooltip(QListViewItem *item, const QPoint &pos, int column) const; 00738 00746 virtual void contentsDragMoveEvent (QDragMoveEvent *event); 00747 00755 virtual void contentsMousePressEvent( QMouseEvent *e ); 00756 00764 virtual void contentsMouseMoveEvent( QMouseEvent *e ); 00765 00773 virtual void contentsMouseDoubleClickEvent ( QMouseEvent *e ); 00774 00782 virtual void contentsDragLeaveEvent (QDragLeaveEvent *event); 00783 00791 virtual void contentsMouseReleaseEvent (QMouseEvent*); 00792 00800 virtual void contentsDropEvent (QDropEvent*); 00801 00809 virtual void contentsDragEnterEvent (QDragEnterEvent *); 00810 00816 virtual QDragObject *dragObject(); 00817 00823 virtual bool acceptDrag (QDropEvent* event) const; 00824 00832 virtual QRect drawDropVisualizer (QPainter *p, QListViewItem *parent, QListViewItem *after); 00833 00840 virtual QRect drawItemHighlighter(QPainter *painter, QListViewItem *item); 00841 00848 virtual void startDrag(); 00849 00857 virtual void keyPressEvent (QKeyEvent*); 00858 00866 virtual void viewportPaintEvent(QPaintEvent*); 00867 00872 void activateAutomaticSelection(); 00877 void deactivateAutomaticSelection(); 00883 bool automaticSelection() const; 00884 00888 virtual void viewportResizeEvent(QResizeEvent* e); 00889 00897 void disableAutoSelection(); 00898 00904 void resetAutoSelection(); 00905 00910 // KDE 4: remove 00911 void doubleClicked( QListViewItem *item, const QPoint &pos, int c ); 00912 00913 protected slots: 00918 void slotSettingsChanged(int); 00919 00920 void slotMouseButtonClicked( int btn, QListViewItem *item, const QPoint &pos, int c ); 00921 void doneEditing(QListViewItem *item, int row); 00922 00926 void cleanDropVisualizer(); 00927 00931 void cleanItemHighlighter(); 00932 00936 void emitContextMenu (QListViewItem*, const QPoint&, int); 00937 00941 void emitContextMenu (KListView*, QListViewItem*); 00942 00947 void slotOnItem( QListViewItem *item ); 00948 00953 void slotOnViewport(); 00954 00959 void slotAutoSelect(); 00960 00961 void slotDragExpand(); 00962 00967 void slotHeaderChanged(); 00968 00969 protected: 00973 virtual void movableDropEvent (QListViewItem* parent, QListViewItem* afterme); 00974 00981 virtual void findDrop(const QPoint &pos, QListViewItem *&parent, QListViewItem *&after); 00982 00986 void fileManagerKeyPressEvent (QKeyEvent*); 00987 00991 int depthToPixels( int depth ); 00992 00993 private: 00994 class Tooltip; 00995 protected: 00996 virtual void virtual_hook( int id, void* data ); 00997 private: 00998 class KListViewPrivate; 00999 KListViewPrivate* const d; 01000 bool isExecuteArea( int x, QListViewItem* item ); 01001 }; 01002 01009 class KDEUI_EXPORT KListViewItem : public QListViewItem 01010 { 01011 friend class KListView; 01012 public: 01019 KListViewItem(QListView *parent); 01020 KListViewItem(QListViewItem *parent); 01021 KListViewItem(QListView *parent, QListViewItem *after); 01022 KListViewItem(QListViewItem *parent, QListViewItem *after); 01023 01024 KListViewItem(QListView *parent, 01025 QString, QString = QString::null, 01026 QString = QString::null, QString = QString::null, 01027 QString = QString::null, QString = QString::null, 01028 QString = QString::null, QString = QString::null); 01029 01030 KListViewItem(QListViewItem *parent, 01031 QString, QString = QString::null, 01032 QString = QString::null, QString = QString::null, 01033 QString = QString::null, QString = QString::null, 01034 QString = QString::null, QString = QString::null); 01035 01036 KListViewItem(QListView *parent, QListViewItem *after, 01037 QString, QString = QString::null, 01038 QString = QString::null, QString = QString::null, 01039 QString = QString::null, QString = QString::null, 01040 QString = QString::null, QString = QString::null); 01041 01042 KListViewItem(QListViewItem *parent, QListViewItem *after, 01043 QString, QString = QString::null, 01044 QString = QString::null, QString = QString::null, 01045 QString = QString::null, QString = QString::null, 01046 QString = QString::null, QString = QString::null); 01047 01048 virtual ~KListViewItem(); 01049 01050 virtual void insertItem(QListViewItem *item); 01051 virtual void takeItem(QListViewItem *item); 01055 bool isAlternate(); 01059 const QColor &backgroundColor() KDE_DEPRECATED; // #### should be removed in 4.0; use below instead 01060 01069 QColor backgroundColor(int column); 01070 01071 virtual void paintCell(QPainter *p, const QColorGroup &cg, 01072 int column, int width, int alignment); 01073 01074 private: 01075 void init(); 01076 01077 private: 01078 uint m_odd : 1; 01079 uint m_known : 1; 01080 uint m_unused : 30; 01081 }; 01082 01083 #endif 01084 01085 // vim: ts=2 sw=2 et
KDE Logo
This file is part of the documentation for kdeui Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 22:56:28 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003