00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
#ifndef KICONVIEW_H
00019
#define KICONVIEW_H
00020
00021
#include <qcursor.h>
00022
#include <qiconview.h>
00023
00024
#include <kdelibs_export.h>
00025
00042 class KDEUI_EXPORT KIconView :
public QIconView
00043 {
00044
friend class KIconViewItem;
00045 Q_OBJECT
00046 Q_ENUMS( Mode )
00047 Q_PROPERTY( Mode mode READ mode WRITE setMode )
00048
00049
public:
00050 KIconView(
QWidget *parent = 0,
const char *name = 0, WFlags f = 0 );
00051
00052 ~KIconView();
00053
00062 enum Mode { Execute, Select };
00063
00073
void setMode( Mode m );
00074
00078 Mode mode() const;
00079
00083 virtual
void setFont( const
QFont & );
00084
00092
void setIconTextHeight(
int n );
00093
00098
int iconTextHeight() const;
00099
00103 virtual
void takeItem(
QIconViewItem * item );
00104
00105 signals:
00106
00116
void executed(
QIconViewItem *item );
00117
00128
void executed(
QIconViewItem *item, const
QPoint &pos );
00129
00138
void held(
QIconViewItem *item );
00139
00153
void doubleClicked(
QIconViewItem *item, const
QPoint &pos );
00154
00155 protected slots:
00156
void slotOnItem(
QIconViewItem *item );
00157
void slotOnViewport();
00158
void slotSettingsChanged(
int);
00159
00163
void slotAutoSelect();
00164
00165 protected:
00166
void emitExecute(
QIconViewItem *item, const
QPoint &pos );
00167
00168 virtual
void focusOutEvent(
QFocusEvent *fe );
00169 virtual
void leaveEvent(
QEvent *e );
00170 virtual
void contentsMousePressEvent(
QMouseEvent *e );
00171 virtual
void contentsMouseDoubleClickEvent (
QMouseEvent * e );
00172 virtual
void contentsMouseReleaseEvent(
QMouseEvent *e );
00173 virtual
void contentsDragEnterEvent(
QDragEnterEvent *e );
00174 virtual
void contentsDragMoveEvent(
QDragMoveEvent *e );
00175 virtual
void contentsDropEvent(
QDropEvent* e );
00176 virtual
void wheelEvent(
QWheelEvent *e );
00177
00184
void cancelPendingHeldSignal();
00185
00186 private slots:
00187
void slotMouseButtonClicked(
int btn,
QIconViewItem *item, const
QPoint &pos );
00188
void slotDragHoldTimeout();
00189
00190 private:
00194
QFontMetrics *itemFontMetrics() const;
00198
QPixmap selectedIconPixmap(
QPixmap *pix, const
QColor &col ) const;
00199
00200
bool m_bUseSingle;
00201
bool m_bChangeCursorOverItem;
00202
00203
QIconViewItem* m_pCurrentItem;
00204
00205
QTimer* m_pAutoSelect;
00206
int m_autoSelectDelay;
00207
00208 protected:
00209 virtual
void virtual_hook(
int id,
void* data );
00210 private:
00211 class KIconViewPrivate;
00212 KIconViewPrivate *d;
00213 };
00214
00215 class
KWordWrap;
00224 class KDEUI_EXPORT
KIconViewItem : public
QIconViewItem
00225 {
00226
public:
00227
00228
KIconViewItem(
QIconView *parent )
00229 : QIconViewItem( parent ) { init(); }
00230
KIconViewItem(
QIconView *parent, QIconViewItem *after )
00231 : QIconViewItem( parent, after ) { init(); }
00232
KIconViewItem(
QIconView *parent,
const QString &text )
00233 : QIconViewItem( parent, text ) { init(); }
00234
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text )
00235 : QIconViewItem( parent, after, text ) { init(); }
00236
KIconViewItem(
QIconView *parent,
const QString &text,
const QPixmap &icon )
00237 : QIconViewItem( parent, text, icon ) { init(); }
00238
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text,
const QPixmap &icon )
00239 : QIconViewItem( parent, after, text, icon ) { init(); }
00240
KIconViewItem(
QIconView *parent,
const QString &text,
const QPicture &picture )
00241 : QIconViewItem( parent, text, picture ) { init(); }
00242
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text,
const QPicture &picture )
00243 : QIconViewItem( parent, after, text, picture ) { init(); }
00244
virtual ~
KIconViewItem();
00245
00257
void setPixmapSize(
const QSize& size );
00258
00263
QSize pixmapSize()
const;
00264
00265
protected:
00266
void init();
00267
virtual void calcRect(
const QString& text_ = QString::null );
00268
virtual void paintItem(
QPainter *p,
const QColorGroup &c );
00269 KWordWrap *wordWrap();
00270
void paintPixmap(
QPainter *p,
const QColorGroup &c );
00271
void paintText(
QPainter *p,
const QColorGroup &c );
00272
00273
private:
00274 KWordWrap* m_wordWrap;
00275
struct KIconViewItemPrivate;
00276 KIconViewItemPrivate *d;
00277 };
00278
00279
#endif