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