24 #include <tdeglobalsettings.h>
26 #include <tqfontinfo.h>
32 KateFontMetrics::KateFontMetrics(
const TQFont& f) : TQFontMetrics(f)
34 for (
int i=0; i<256; i++) warray[i]=0;
37 KateFontMetrics::~KateFontMetrics()
39 for (
int i=0; i<256; i++)
43 short * KateFontMetrics::createRow (
short *wa, uchar row)
45 wa=warray[row]=
new short[256];
47 for (
int i=0; i<256; i++) wa[i]=-1;
52 int KateFontMetrics::width(TQChar c)
56 short *wa=warray[row];
59 wa = createRow (wa, row);
61 if (wa[cell]<0) wa[cell]=(short) TQFontMetrics::width(c);
70 KateFontStruct::KateFontStruct()
75 myFontMetrics(myFont),
76 myFontMetricsBold(myFontBold),
77 myFontMetricsItalic(myFontItalic),
78 myFontMetricsBI(myFontBI),
84 KateFontStruct::~KateFontStruct()
88 void KateFontStruct::updateFontData ()
90 int maxAscent = myFontMetrics.ascent();
91 int maxDescent = myFontMetrics.descent();
93 fontHeight = maxAscent + maxDescent + 1;
94 fontAscent = maxAscent;
96 m_fixedPitch = TQFontInfo( myFont ).fixedPitch();
99 void KateFontStruct::setFont (
const TQFont & font)
101 TQFontMetrics testFM (font);
104 if ((testFM.ascent() + testFM.descent() + 1) < 1)
109 myFontBold = TQFont (font);
110 myFontBold.setBold (
true);
112 myFontItalic = TQFont (font);
113 myFontItalic.setItalic (
true);
115 myFontBI = TQFont (font);
116 myFontBI.setBold (
true);
117 myFontBI.setItalic (
true);
119 myFontMetrics = KateFontMetrics (myFont);
120 myFontMetricsBold = KateFontMetrics (myFontBold);
121 myFontMetricsItalic = KateFontMetrics (myFontItalic);
122 myFontMetricsBI = KateFontMetrics (myFontBI);