diff options
Diffstat (limited to 'Build/source/libs/graphite-engine/include/graphite/FileFont.h')
-rw-r--r-- | Build/source/libs/graphite-engine/include/graphite/FileFont.h | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/Build/source/libs/graphite-engine/include/graphite/FileFont.h b/Build/source/libs/graphite-engine/include/graphite/FileFont.h deleted file mode 100644 index bbb26266c71..00000000000 --- a/Build/source/libs/graphite-engine/include/graphite/FileFont.h +++ /dev/null @@ -1,260 +0,0 @@ -/*--------------------------------------------------------------------*//*:Ignore this sentence. -Copyright (C) 1999, 2001, 2005 SIL International. All rights reserved. - -Distributable under the terms of either the Common Public License or the -GNU Lesser General Public License, as specified in the LICENSING.txt file. - -File: XftFont.h -Responsibility: Keith Stribley -Last reviewed: Not yet. - -Description: - A Font is an object that represents a font-family + bold + italic setting, that contains - Graphite tables. -----------------------------------------------------------------------------------------------*/ -#ifndef FILEFONT_INCLUDED -#define FILEFONT_INCLUDED -#include "Font.h" - - -//:End Ignore - - -namespace gr -{ - -class FontTableCache; -class GrEngine; -/*----------------------------------------------------------------------------- - Stock implementation of an Xft font class. -------------------------------------------------------------------------------*/ -/** -* An implementation of the Graphite gr::Font class for Xft fonts for use on -* systems using X. Freetype is used to retrieve font information. -* If you are using Freetype directly, without Xft, you can pass in a FT_Face -* directly. -*/ -class FileFont : public Font -{ -public: - /** - * The main user constructor. Constructs the font from the supplied FILE pointer. - * @param file the FILE pointer to initialise from (must not be null) - */ - FileFont(FILE * file, float pointSize, unsigned int DPIx, unsigned int DPIy = 0); - - /** - * Alternative user constructor. Constructs the font from the supplied filename. - * @param filename character array - */ - FileFont(char * filename, float pointSize, unsigned int DPIx, unsigned int DPIy = 0); - - /** - * Alternative user constructor. Constructs the font from the supplied filename. - * @param filename as a string - */ - FileFont(std::string filename, float pointSize, - unsigned int DPIx, unsigned int DPIy = 0); - - - /** - * Destructor - cleans up the tables that it has allocated if all other copies - * of this font have been deleted. - */ - virtual ~FileFont(); - - /** - * Returns a copy of the recipient. Specifically needed to store the Font - * in a segment. - * @internal - */ - virtual Font * copyThis(); - - /** - * Copy constructor - note the tables are shared between the copy and the - * original font for efficiency reasons. - * The last copy to be deleted will delete the tables. - * @param font the XftGrFont object to copy from. - * @internal - */ - FileFont(const FileFont & font, float pointSize = 0, unsigned int DPIx = 0, unsigned int DPIy = 0); - - //virtual FontErrorCode isValidForGraphite(int * pnVersion = NULL, int * pnSubVersion = NULL); - /** - * Returns a pointer to the start of a table in the font. The ftblid32 type - * is a 32-bit unsigned integer. - * If the Font class cannot easily determine the length of the table, it may - * set 0 as the length (while returning a non-NULL pointer to the table). This - * means that certain kinds of error checking cannot be done by the Graphite - * engine. - * Throws an exception if there is some other error in reading the table, or if - * the table asked for is not one of the expected ones (cmap, head, name, Sile, - * Silf, Feat, Gloc, Glat). [If we want to be able to read “non-standard” - * tables, then the caller needs to be responsible for freeing the memory.] - */ - virtual const void * getTable(fontTableId32 tableID, size_t * pcbSize); - - /** - * Returns the basic metrics of the font. It corresponds to the current - * GrGraphics::get_FontAscent, get_FontDescent and GetFontEmSquare methods. - * @param pAscent pointer to hold font ascent - * @param pDescent pointer to hold font descent - * @param pEmSquare pointer to hold font EM square - */ - virtual void getFontMetrics(float * pAscent, float * pDescent = NULL, - float * pEmSquare = NULL); - - /** - * Returns true if the given arguments specify a font that contains Graphite - * tables—specfically a “Silf” table. - * @param xftFont XftFont pointer - * @return true if this font has the silf table - */ - bool fontHasGraphiteTables(); - - /** - * Returns true if the given arguments specify a font that contains Graphite - * tables—specfically a “Silf” table. - * @param xftFont XftFont pointer - * @return true if this font has the silf table - */ - static bool FontHasGraphiteTables(FILE * file); - - /** - * Returns true if the given arguments specify a font that contains Graphite - * tables—specfically a “Silf” table. - * @param face FT_Face handle - * @return true if this font has the silf table - */ - static bool FontHasGraphiteTables(char * filename); - - // Temporary, until interface gets thoroughly reworked: - GrEngine * GraphiteEngine(); - - /** - * Returns the font ascent in pixels. Using floating point allows us to - * avoid rounding errors. - * Value is the same as that returned by getFontMetrics() - * @return the font ascent - */ - virtual float ascent() - { - float pixAscent; - getFontMetrics(&pixAscent); - return pixAscent; - } - /** - * Returns the font descent in pixels with a positive sign. - * Value is the same as that returned by getFontMetrics() - * @return the font descent in pixels. - */ - virtual float descent() - { - float pixDescent; - getFontMetrics(NULL, &pixDescent); - return pixDescent; - } - /** - * Returns the total height of the font. - * Equivalent to ascent() + descent(). - * @return font height - */ - virtual float height() - { - float pixAscent; - float pixDescent; - getFontMetrics(&pixAscent, &pixDescent); - return (pixAscent + pixDescent); - } - /** - * @return true if the font is a bold styled one. - */ - virtual bool bold() - { - return m_fBold; - } - /** - * @return true if the font is italic - */ - virtual bool italic() - { - return m_fItalic; - } - /** @return the DPI for the x-axis. - */ - virtual unsigned int getDPIx() - { - return m_dpiX; - } - /** @return Returns the DPI for the y-axis. - */ - virtual unsigned int getDPIy() - { - return m_dpiY; - } - // Specific to XftGrFont: - - /** @return set the DPI for the x-axis. - */ - virtual void setDPIx(unsigned int dpi) - { - m_dpiX = dpi; - m_xScale = scaleFromDpi(dpi); - } - /** @return set the DPI for the y-axis. - */ - virtual void setDPIy(unsigned int dpi) - { - m_dpiY = dpi; - m_yScale = scaleFromDpi(dpi); - } - - bool isValid() { return m_fIsValid; }; -protected: - /** Default constructor is not used */ - FileFont(); - /** - * Common initialisation between the XftFont and FT_Face constructors. - */ - void initializeFromFace(void); - // this uses an int to avoid having to include TtfUtil.h in the include - // directory - byte * readTable(int /*TableId*/ tableId, size_t & size); - - // pixels-per-em = dpi * point-size / 72 - // pixel-coord = design-coord * pixels-per-em / font-em-square - float scaleFromDpi(int dpi) - { - return (dpi * m_pointSize) / (72.0f * m_mEmSquare); - } - - // Member variables: - FILE * m_pfile; - - unsigned long m_clrFore; - unsigned long m_clrBack; - bool m_fBold; - bool m_fItalic; - // font table caches: - FontTableCache * m_pTableCache; - - // KRS: I think these should be cached otherwise Segment::LineContextSegment doesn't work - float m_mAscent; - float m_mDescent; - float m_mEmSquare; - float m_pointSize; - int m_dpiX; - int m_dpiY; - bool m_fIsValid; - std::wstring m_stuFaceName; - byte * m_pHeader; - byte * m_pTableDir; - float m_xScale; - float m_yScale; -}; - - -} // namespace gr - -#endif - |