00001 #ifndef _QDBTTEXTCELL_H 00002 #define _QDBTTEXTCELL_H 00003 00004 #include <qstring.h> 00005 #include <qrect.h> 00006 00007 #include <qdbt/qdbtglobal.h> 00008 #include "qdbtbasecell.h" 00009 00010 class QPainter; 00011 class QdbtBaseTabular; 00012 00013 class QDBT_EXPORT QdbtTextCell : public QdbtBaseCell 00014 { 00015 public: 00016 QdbtTextCell(); 00017 QdbtTextCell( const QdbtTextCell & ); 00018 QdbtTextCell( const QString &text, int align = Qt::AlignLeft, 00019 bool edit = FALSE ); 00020 virtual ~QdbtTextCell(); 00021 00022 void setText( const QString &value ) { _value = value; } 00023 virtual QString text() const { return _value; } 00024 00025 void setAlignment( int alignment ) { align = alignment; } 00026 int alignment() const { return align; } 00027 00028 virtual int widthHint( const QFontMetrics &fm ) const; 00029 virtual int heightHint( const QFontMetrics &fm ) const; 00030 00031 protected: 00032 virtual QWidget *editor( QdbtBaseTabular * ) const; 00033 virtual void paint( QPainter *p, QdbtBaseTabular *t, const QRect & r, 00034 bool selected, bool editing = FALSE ); 00035 virtual QRect getTextArea() const; 00036 virtual QRect getEditArea( int width ) const; 00037 virtual QdbtBaseCell *clone( QdbtBaseTabular * ) const; 00038 00039 virtual bool beginEdit( QdbtBaseTabular *, int row, int col, 00040 const QRect cellGeometry ) const; 00041 virtual bool acceptEdit( QdbtBaseTabular *, int row, int col ); 00042 virtual bool cancelEdit( QdbtBaseTabular *, int row, int col ); 00043 00044 private: 00045 QString _value; 00046 00047 QRect tr; 00048 int align; 00049 }; 00050 00051 #endif