00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef ESSTIXFONTSTYLE_H
00021
#define ESSTIXFONTSTYLE_H
00022
00023
#include "fontstyle.h"
00024
00025 KFORMULA_NAMESPACE_BEGIN
00026
00027
00028
class EsstixAlphaTable :
public AlphaTable {
00029
public:
00030
00031 EsstixAlphaTable();
00032
00033
virtual AlphaTableEntry entry(
short pos, CharFamily family, CharStyle style )
const;
00034
00035
private:
00036
00037
QFont script_font;
00038
QFont fraktur_font;
00039
QFont double_struck_font;
00040 };
00041
00042
00043
class EsstixFontStyle :
public FontStyle {
00044
00046
virtual bool init(
ContextStyle* context );
00047
00049
virtual const AlphaTable*
alphaTable() const;
00050
00051 virtual Artwork* createArtwork( SymbolType type = EmptyBracket ) const;
00052
00053 private:
00054
00055 EsstixAlphaTable m_alphaTable;
00056 };
00057
00058
00059 class EsstixArtwork : public Artwork {
00060
public:
00061 EsstixArtwork( SymbolType t );
00062
00063
virtual void calcSizes(
const ContextStyle& style,
00064 ContextStyle::TextStyle tstyle,
00065 luPt parentSize );
00066
00067
virtual void draw(
QPainter& painter,
const LuPixelRect& r,
00068
const ContextStyle& style,
00069 ContextStyle::TextStyle tstyle,
00070 luPt parentSize,
const LuPixelPoint& origin );
00071
00072
virtual bool isNormalChar() const;
00073
00074 private:
00075
00076
bool calcEsstixDelimiterSize( const
ContextStyle& context,
char c, luPt fontSize, luPt parentSize );
00077
void drawEsstixDelimiter(
QPainter& painter, const
ContextStyle& style, luPixel x, luPixel y, luPt height );
00078
00079
char esstixChar;
00080
char fontSizeFactor;
00081 };
00082
00083 KFORMULA_NAMESPACE_END
00084
00085 #endif