![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: ttsDrawer.h,v $ $Revision: 1.28 $ $State: Exp $ 00007 *********************************************************************/ 00008 00011 00012 #ifndef DtTTSDrawer_H_ 00013 #define DtTTSDrawer_H_ 00014 00016 #include "symbolDrawer/symbolDrawerDefines.h" 00017 #include "symbolDrawer/baseSymbolDrawer.h" 00018 00020 #include <QtCore/QCache> 00021 #include <QtCore/QSize> 00022 00023 #include <QtGui/QPixmap> 00024 #include <QtGui/QPainter> 00025 #include <QtGui/QBrush> 00026 #include <QtGui/QFont> 00027 #include <QtGui/QFontMetrics> 00028 00029 class QString; 00030 class DtSymbol; 00031 class DtTTSSymbol; 00032 class DtCenterPoint; 00033 00038 00041 class DT_DLL_symbolDrawer DtTTSDrawer : public DtBaseSymbolDrawer 00042 { 00043 public: 00044 DtTTSDrawer(); 00045 DtTTSDrawer(const QString & family, int pointSize = 24 ); 00046 virtual ~DtTTSDrawer(); 00047 00048 virtual bool draw( QPainter& paint, 00049 const DtSymbol * const symbol ) const; 00050 00053 virtual QSize calcBBox( const DtSymbol * const symbol ) const; 00054 00055 virtual void setFont( const QString & family, unsigned pointSize ); 00056 virtual void setFont( const QFont & font ); 00057 const QFont & font() const; 00058 00060 virtual bool compareFamily( const QString & desiredFamily, 00061 const QFont& font ) const; 00062 00065 virtual QPoint calcOrigin(const DtTTSSymbol* s, bool calcBitmapOrigin = false) const; 00066 00069 virtual void paintFont(QPainter& painter, 00070 int left, int base, 00071 const DtTTSSymbol & symbol, const QColor& ) const; 00072 00073 virtual void paintFont(QPainter& painter, QRect& rect, const DtTTSSymbol& t, 00074 const QColor&, int flags = 0) const; 00075 00077 virtual void setCenter(bool b); 00078 00079 static DtSymbolDrawer* create(); 00080 00081 protected: 00083 virtual void setAppearance( const DtTTSSymbol & s ) const; 00084 00085 virtual bool drawSymbolAsBitmap(QPainter& painter, const QPoint& origin, const DtTTSSymbol& t) const; 00086 00087 virtual bool drawFont(QPainter& painter, const QPoint& origin, const DtTTSSymbol& t) const; 00088 virtual QString calcKey( const DtTTSSymbol & symbol ) const; 00089 00091 00092 virtual QHash<QString, QPixmap>::const_iterator insertPix( const DtTTSSymbol & symbol, 00093 const QPixmap * pix ) const; 00094 virtual const QPixmap * lookupPix( const DtTTSSymbol & symbol ) const; 00095 virtual const QPixmap* createPix(const DtTTSSymbol *pSymbol) const; 00097 00098 virtual void createFontKey(); 00099 00100 private: 00102 DtTTSDrawer(const DtTTSDrawer& orig); 00103 DtTTSDrawer& operator=(const DtTTSDrawer& orig); 00105 00106 protected: 00109 mutable QFont myFont; 00110 mutable QFont myDefaultFont; 00111 mutable QFontMetrics myFontMetrics; 00112 bool myCenter; 00113 00114 protected: 00117 mutable QHash<QString, QPixmap> myCache; 00118 QString myFontKey; 00119 }; 00120 00121 #endif 00122