diff options
Diffstat (limited to 'khtml/rendering/font.h')
-rw-r--r-- | khtml/rendering/font.h | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/khtml/rendering/font.h b/khtml/rendering/font.h deleted file mode 100644 index 714b03829..000000000 --- a/khtml/rendering/font.h +++ /dev/null @@ -1,188 +0,0 @@ -/* - * This file is part of the html renderer for KDE. - * - * Copyright (C) 2000-2003 Lars Knoll (knoll@kde.org) - * (C) 2000 Antti Koivisto (koivisto@kde.org) - * (C) 2000 Dirk Mueller (mueller@kde.org) - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef KHTMLFONT_H -#define KHTMLFONT_H - -#include <tqfont.h> -#include <tqfontmetrics.h> -#include <tqmap.h> -#include <tqpainter.h> - -class TQFontDatabase; -class TQPaintDeviceMetrics; - -namespace khtml -{ -class RenderStyle; -class CSSStyleSelector; - -class FontDef -{ -public: - FontDef() - : size( 0 ), italic( false ), smallCaps( false ), weight( 50 ) {} - bool operator == ( const FontDef &other ) const { - return ( family == other.family && - size == other.size && - italic == other.italic && - smallCaps == other.smallCaps && - weight == other.weight ); - } - - TQString family; - short int size; - bool italic : 1; - bool smallCaps : 1; - unsigned int weight : 8; -}; - - -class Font -{ - friend class RenderStyle; - friend class CSSStyleSelector; - -public: - Font() : fontDef(), f(), fm( f ), scFont( 0 ), letterSpacing( 0 ), wordSpacing( 0 ) {} - Font( const FontDef &fd ) - : fontDef( fd ), f(), fm( f ), scFont( 0 ), letterSpacing( 0 ), wordSpacing( 0 ) - {} - Font(const Font& o) - : fontDef(o.fontDef), f(o.f), fm(o.fm), scFont(o.scFont), letterSpacing(o.letterSpacing), wordSpacing(o.wordSpacing) { if (o.scFont) scFont = new TQFont(*o.scFont); } - ~Font() { delete scFont; } - - bool operator == ( const Font &other ) const { - return (fontDef == other.fontDef && - letterSpacing == other.letterSpacing && - wordSpacing == other.wordSpacing ); - } - - const FontDef& getFontDef() const { return fontDef; } - - void update( TQPaintDeviceMetrics *devMetrics ) const; - - /** - * Draws a piece from the given piece of text. - * @param p painter - * @param x x-coordinate to begin drawing, always denotes leftmost position - * @param y y-coordinate of baseline of text - * @param str string to draw a piece from - * @param slen total length of string - * @param pos zero-based offset of beginning of piece - * @param len length of piece - * @param width additional pixels to be distributed equally among all - * spaces - * @param d text direction - * @param from begin with this position relative to @p pos, -1 to start - * at @p pos - * @param to stop before this position relative to @p pos, -1 to use full - * length of piece - * @param bg if valid, fill the background of the drawn piece with this - * color - * @param uy y-coordinate of top position, used for background and text - * decoration painting - * @param h total height of line, only used for background and text - * decoration painting - * @param deco combined text decoration (see Decoration) - */ - void drawText( TQPainter *p, int x, int y, TQChar *str, int slen, int pos, int len, int width, - TQPainter::TextDirection d, int from=-1, int to=-1, TQColor bg=TQColor(), - int uy=-1, int h=-1, int deco=0 ) const; - - /** returns the width of the given string chunk in pixels. - * - * The method also considers various styles like text-align and font-variant - * @param str pointer to string - * @param slen total length of string - * @param pos zero-based position in string where to start measuring - * @param len count of characters up to which the width should be determined - * @param start starting position of inline text box within str, only - * used when toAdd is specified. - * @param end ending position of inline text box within str, only - * used when toAdd is specified. - * @param toAdd amount of pixels to distribute evenly among all spaces of - * str. Note that toAdd applies to all spaces within str, but only those - * within [pos, pos+len) are counted towards the width. - */ - int width( TQChar *str, int slen, int pos, int len, int start = 0, int end = 0, int toAdd = 0 ) const; - /** return the width of the given char in pixels. - * - * The method also considers various styles like text-align and font-variant - * @param str pointer to string - * @param slen total length of string - * @param pos zero-based position of char in string - */ - int width( TQChar *str, int slen, int pos) const; - - /** Text decoration constants. - * - * The enumeration constant values match those of ETextDecoration, but only - * a subset is supported. - */ - enum Decoration { UNDERLINE = 0x1, OVERLINE = 0x2, LINE_THROUGH= 0x4 }; - // Keep in sync with ETextDecoration - - /** draws text decoration - * @param p painter - * @param x x-coordinate - * @param y top y-coordinate of line box - * @param baseline baseline - * @param width length of decoration in pixels - * @param height height of line box - * @param deco decoration to be drawn (see Decoration). The enumeration - * constants may be combined. - */ - void drawDecoration(TQPainter *p, int x, int y, int baseline, int width, int height, int deco) const; - - /** returns letter spacing - */ - int getLetterSpacing() const { return letterSpacing; } - /** returns word spacing - */ - int getWordSpacing() const { return wordSpacing; } - -private: - mutable FontDef fontDef; - mutable TQFont f; - mutable TQFontMetrics fm; - mutable TQFont *scFont; - short letterSpacing; - short wordSpacing; - - struct ScalKey; - enum ScalInfo { - Unknown, - No, - Yes - }; - - static TQMap<ScalKey, ScalInfo>* scalCache; - static TQMap<ScalKey, TQValueList<int> >* scalSizesCache; - static bool isFontScalable(TQFontDatabase& db, const TQFont& font); -}; - -} // namespace - -#endif |