--- a/src/gui/text/qfontengine_s60_p.h Tue Jul 06 15:10:48 2010 +0300
+++ b/src/gui/text/qfontengine_s60_p.h Wed Aug 18 10:37:55 2010 +0300
@@ -54,10 +54,20 @@
//
#include "qconfig.h"
-#include "qfontengine_p.h"
+#include <private/qfontengine_p.h>
#include "qsize.h"
#include <openfont.h>
+// This is a very hackish way to detect Symbian^4 and needs to be removed
+// once device profiles for proper feature detection are available
+#ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
+#define Q_SYMBIAN_HAS_FONTTABLE_API
+#endif
+
+#ifdef Q_SYMBIAN_HAS_FONTTABLE_API
+#define Q_SYMBIAN_HAS_GLYPHOUTLINE_API
+#endif // Q_SYMBIAN_HAS_FONTTABLE_API
+
class CFont;
QT_BEGIN_NAMESPACE
@@ -66,20 +76,22 @@
class QSymbianTypeFaceExtras
{
public:
- QSymbianTypeFaceExtras(CFont* fontOwner, COpenFont *font);
+ QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont = 0);
+ ~QSymbianTypeFaceExtras();
QByteArray getSfntTable(uint tag) const;
bool getSfntTableData(uint tag, uchar *buffer, uint *length) const;
- const unsigned char *cmap() const;
+ const uchar *cmap() const;
CFont *fontOwner() const;
private:
- COpenFont *m_font;
- mutable MOpenFontTrueTypeExtension *m_trueTypeExtension;
- mutable const unsigned char *m_cmap;
+ CFont* m_cFont;
mutable bool m_symbolCMap;
mutable QByteArray m_cmapTable;
- CFont* m_fontOwner;
+#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
+ COpenFont *m_openFont;
+ mutable MOpenFontTrueTypeExtension *m_trueTypeExtension;
+#endif // Q_SYMBIAN_HAS_FONTTABLE_API
};
class QFontEngineS60 : public QFontEngine
@@ -91,6 +103,9 @@
bool stringToCMap(const QChar *str, int len, QGlyphLayout *glyphs, int *nglyphs, QTextEngine::ShaperFlags flags) const;
void recalcAdvances(QGlyphLayout *glyphs, QTextEngine::ShaperFlags flags) const;
+ void addGlyphsToPath(glyph_t *glyphs, QFixedPoint *positions, int nglyphs,
+ QPainterPath *path, QTextItem::RenderFlags flags);
+
QImage alphaMapForGlyph(glyph_t glyph);
glyph_metrics_t boundingBox(const QGlyphLayout &glyphs);
@@ -121,6 +136,7 @@
private:
friend class QFontPrivate;
+ friend class QSymbianVGFontGlyphCache;
QFixed glyphAdvance(HB_Glyph glyph) const;
CFont *fontWithSize(qreal size) const;