kaddressbook Library API Documentation

cardview.h

00001 #ifndef CARDVIEW_H
00002 #define CARDVIEW_H
00003 
00004 #include <qscrollview.h>
00005 #include <qptrlist.h>
00006 #include <qstring.h>
00007 #include <qrect.h>
00008 #include <qpair.h>
00009 
00010 class QPainter;
00011 class QResizeEvent;
00012 class QMouseEvent;
00013 class CardView;
00014 class CardViewPrivate;
00015 class CardViewItemPrivate;
00016 
00021 class CardViewItem
00022 {
00023   friend class CardView;
00024   
00025   public:
00029     typedef QPair<QString, QString> Field;
00030     
00038     CardViewItem(CardView *parent, QString caption = QString::null);
00039     virtual ~CardViewItem();
00040     
00044     const QString &caption() const;
00045     
00050     void setCaption(const QString &caption);
00051     
00055     virtual void paintCard(QPainter *p, QColorGroup &cg);
00056     
00060     virtual void repaintCard();
00061     
00068     void insertField(const QString &label, const QString &value);
00069     
00072     void removeField(const QString &label);
00073     
00076     QString fieldValue(const QString &label);
00077     
00080     void clearFields();
00081     
00086     CardViewItem *nextItem();
00087     
00090     bool isSelected() const;
00091     
00092   protected:
00096     void setSelected(bool selected);
00097 
00098   private:
00101     void initialize();
00102     
00106     void calcRect();
00107     
00113     QString trimString(const QString &text, int width, QFontMetrics &fm);
00114     
00115     CardViewItemPrivate *d;
00116     CardView *mView;
00117 };
00118 
00130 class CardView : public QScrollView
00131 {
00132   friend class CardViewItem;
00133   
00134   Q_OBJECT
00135   
00136   public:
00139     CardView(QWidget *parent, const char *name);
00140     virtual ~CardView();
00141     
00146     void insertItem(CardViewItem *item);
00147     
00151     void takeItem(CardViewItem *item);
00152     
00155     void clear();
00156     
00160     CardViewItem *itemAt(const QPoint &viewPos);
00161     
00164     QRect itemRect(const CardViewItem *item);
00165     
00168     void ensureItemVisible(const CardViewItem *item);
00169     
00170     enum SelectionMode { Single, Multi, Extended, NoSelection };
00171     
00176     void setSelectionMode(SelectionMode mode);
00177     
00180     SelectionMode selectionMode() const;
00181     
00185     void setSelected(CardViewItem *item, bool selected);
00186     
00189     void selectAll(bool state);
00190     
00193     bool isSelected(CardViewItem *item) const;
00194     
00199     CardViewItem *selectedItem() const;
00200     
00205     CardViewItem *firstItem() const;
00206     
00210     CardViewItem *itemAfter(CardViewItem *item);
00211     
00214     int childCount() const;
00215     
00224     CardViewItem *findItem(const QString &text, const QString &label, 
00225                            Qt::StringComparisonMode compare = Qt::BeginsWith);
00226     
00231     void setDrawCardBorder(bool enabled);
00232     
00235     bool drawCardBorder() const;
00236     
00242     void setDrawColSeparators(bool enabled);
00243     
00246     bool drawColSeparators() const;
00247     
00253     void setDrawFieldLabels(bool enabled);
00254     
00257     bool drawFieldLabels() const;
00258     
00259   signals:
00263     void selectionChanged();
00264     
00269     void selectionChanged(CardViewItem *);
00270     
00273     void clicked(CardViewItem *);
00274     
00278     void executed(CardViewItem *);
00279     
00282     void doubleClicked(CardViewItem *);
00283     
00284   protected:
00288     virtual void viewportPaintEvent( QPaintEvent * );
00289     
00292     void resizeEvent(QResizeEvent *e);
00293     
00296     void setLayoutDirty(bool dirty);
00297     
00302     void calcLayout();
00303     
00304     virtual void mousePressEvent(QMouseEvent *e);
00305     virtual void mouseReleaseEvent(QMouseEvent *e);
00306     virtual void mouseDoubleClickEvent(QMouseEvent *e);
00307     virtual void mouseMoveEvent(QMouseEvent *e);
00308     
00313     virtual void startDrag();
00314     
00315   private:
00316     CardViewPrivate *d;
00317 };
00318 
00319 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Sun Feb 15 11:40:36 2004 by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2001