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
00039 class KIconView :
public QIconView
00040 {
00041
friend class KIconViewItem;
00042 Q_OBJECT
00043 Q_ENUMS(
Mode )
00044 Q_PROPERTY(
Mode mode READ mode WRITE
setMode )
00045
00046
public:
00047
KIconView(
QWidget *parent = 0,
const char *name = 0, WFlags f = 0 );
00048
00049 ~
KIconView();
00050
00059 enum Mode { Execute, Select };
00060
00070
void setMode( Mode m );
00071
00075 Mode
mode() const;
00076
00080 virtual
void setFont( const
QFont & );
00081
00082 signals:
00083
00093
void executed(
QIconViewItem *item );
00094
00105
void executed(
QIconViewItem *item, const
QPoint &pos );
00106
00120
void doubleClicked(
QIconViewItem *item, const
QPoint &pos );
00121
00122 protected slots:
00123
void slotOnItem(
QIconViewItem *item );
00124
void slotOnViewport();
00125
void slotSettingsChanged(
int);
00126
00130
void slotAutoSelect();
00131
00132 protected:
00133
void emitExecute(
QIconViewItem *item, const
QPoint &pos );
00134
00135 virtual
void focusOutEvent(
QFocusEvent *fe );
00136 virtual
void leaveEvent(
QEvent *e );
00137 virtual
void contentsMousePressEvent(
QMouseEvent *e );
00138 virtual
void contentsMouseDoubleClickEvent (
QMouseEvent * e );
00139 virtual
void contentsMouseReleaseEvent(
QMouseEvent *e );
00140
00141 private slots:
00142
void slotMouseButtonClicked(
int btn,
QIconViewItem *item, const
QPoint &pos );
00143
00144 private:
00148
QFontMetrics *itemFontMetrics() const;
00152
QPixmap selectedIconPixmap(
QPixmap *pix, const
QColor &col ) const;
00153
00154
bool m_bUseSingle;
00155
bool m_bChangeCursorOverItem;
00156
00157
QIconViewItem* m_pCurrentItem;
00158
00159
QTimer* m_pAutoSelect;
00160
int m_autoSelectDelay;
00161
00162 protected:
00163 virtual
void virtual_hook(
int id,
void* data );
00164 private:
00165 class KIconViewPrivate;
00166 KIconViewPrivate *d;
00167 };
00168
00169 class
KWordWrap;
00177 class
KIconViewItem : public
QIconViewItem
00178 {
00179
public:
00180
00181
KIconViewItem(
QIconView *parent )
00182 : QIconViewItem( parent ) { init(); }
00183
KIconViewItem(
QIconView *parent, QIconViewItem *after )
00184 : QIconViewItem( parent, after ) { init(); }
00185
KIconViewItem(
QIconView *parent,
const QString &text )
00186 : QIconViewItem( parent, text ) { init(); }
00187
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text )
00188 : QIconViewItem( parent, after, text ) { init(); }
00189
KIconViewItem(
QIconView *parent,
const QString &text,
const QPixmap &icon )
00190 : QIconViewItem( parent, text, icon ) { init(); }
00191
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text,
const QPixmap &icon )
00192 : QIconViewItem( parent, after, text, icon ) { init(); }
00193
KIconViewItem(
QIconView *parent,
const QString &text,
const QPicture &picture )
00194 : QIconViewItem( parent, text, picture ) { init(); }
00195
KIconViewItem(
QIconView *parent, QIconViewItem *after,
const QString &text,
const QPicture &picture )
00196 : QIconViewItem( parent, after, text, picture ) { init(); }
00197
virtual ~
KIconViewItem();
00198
00199
protected:
00200
void init();
00201
virtual void calcRect(
const QString& text_ = QString::null );
00202
virtual void paintItem(
QPainter *p,
const QColorGroup &c );
00203 KWordWrap *wordWrap();
00204
void paintPixmap(
QPainter *p,
const QColorGroup &c );
00205
void paintText(
QPainter *p,
const QColorGroup &c );
00206
00207
private:
00208 KWordWrap* m_wordWrap;
00209
class KIconViewItemPrivate;
00210 KIconViewItemPrivate *d;
00211 };
00212
00213
#endif