diff options
Diffstat (limited to 'Build/source/texk/web2c/xetexdir/XeTeXGrLayout.h')
-rw-r--r-- | Build/source/texk/web2c/xetexdir/XeTeXGrLayout.h | 201 |
1 files changed, 0 insertions, 201 deletions
diff --git a/Build/source/texk/web2c/xetexdir/XeTeXGrLayout.h b/Build/source/texk/web2c/xetexdir/XeTeXGrLayout.h deleted file mode 100644 index 9d888247ade..00000000000 --- a/Build/source/texk/web2c/xetexdir/XeTeXGrLayout.h +++ /dev/null @@ -1,201 +0,0 @@ -/****************************************************************************\ - Part of the XeTeX typesetting system - copyright (c) 1994-2008 by SIL International - copyright (c) 2009 by Jonathan Kew - - Written by Jonathan Kew - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF -CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of the copyright holders -shall not be used in advertising or otherwise to promote the sale, -use or other dealings in this Software without prior written -authorization from the copyright holders. -\****************************************************************************/ - -#ifndef __XETEX_GR_LAYOUT__ -#define __XETEX_GR_LAYOUT__ - -#include "XeTeXFontInst.h" - -#include "graphite/GrClient.h" - -#include "graphite/Font.h" -#include "graphite/Segment.h" -#include "graphite/ITextSource.h" - -class XeTeXGrFont - : public gr::Font -{ -public: - XeTeXGrFont(const XeTeXFontInst* inFont, const char* name); - XeTeXGrFont(const XeTeXGrFont& orig); - - virtual ~XeTeXGrFont(); - - /** - * Returns a copy of the recipient. Specifically needed to store the - * Font in a segment. - * @internal - * @return pointer to copy - */ - virtual XeTeXGrFont * copyThis(); - - /** - * Return wether the font is bold. - * @return true when bold - */ - virtual bool bold() { return false; } - - /** - * Return wether the font is italic. - * @return true when italic - */ - virtual bool italic() { return false; } - - /** - * Returns the font ascent. - * Value is the same as that returned by getFontMetrics() - * @return the font ascent in device co-ordinates - */ - virtual float ascent() { return fXeTeXFont->getExactAscent(); } - - /** - * Returns the font descent. - * Value is the same as that returned by getFontMetrics() - * @return the font descent in device co-ordinates - */ - virtual float descent() { return - fXeTeXFont->getExactDescent(); } - - /** - * Returns the total height of the font. - * @return font height in device co-ordinates - */ - virtual float height() { return ascent() + descent(); } - - /** - * Returns the x and y resolution of the device co-ordinate space. - */ - virtual unsigned int getDPIx() { return 72; } /* I think this is irrelevant in XeTeX */ - virtual unsigned int getDPIy() { return 72; } - - /** - * Returns a pointer to the start of a table in the font. - * 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 in the font. - * @param tableID the TTF ID of the table. - * @param pcbSize pointer to a size_t to hold the table size. - * @return address of the buffer containing the table or 0 - */ - virtual const void * getTable(gr::fontTableId32 tableID, size_t * pcbSize); - - /** - * Fetches the basic metrics of the font in device co-ordinates - * (normaly pixels). - * @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); - -protected: - virtual void UniqueCacheInfo(std::wstring & stuFace, bool & fBold, bool & fItalic); - - const XeTeXFontInst* fXeTeXFont; - const char* fName; -}; - -class XeTeXGrTextSource - : public gr::ITextSource -{ -public: - XeTeXGrTextSource(int dirLevel, const UniChar* iText = NULL, size_t iLen = 0) - : fDirLevel(dirLevel) - , fTextBuffer(iText) - , fTextLength(iLen) - , fLanguage(kUnknownLanguage) - , fNumFeatures(0) - , fFeatureSettings(NULL) - { } - - virtual ~XeTeXGrTextSource() - { } - - void setText(const UniChar* iText, size_t iLen); - - void setFeatures(int nFeatures, const int* featureIDs, const int* featureValues); - void setFeatures(int nFeatures, const gr::FeatureSetting* features); - - void setLanguage(gr::isocode iLanguage) - { fLanguage = iLanguage; } - - void setLanguage(UInt32 iLanguage); - - virtual gr::UtfType utfEncodingForm() - { return gr::kutf16; } - - virtual size_t fetch(gr::toffset startChar, size_t n, gr::utf32* buffer) - { throw; } - - virtual size_t fetch(gr::toffset startChar, size_t n, gr::utf8* buffer) - { throw; } - - virtual size_t fetch(gr::toffset startChar, size_t n, gr::utf16* buffer); - - virtual size_t getLength() - { return fTextLength; } - - virtual std::pair<gr::toffset,gr::toffset> propertyRange(gr::toffset charIndex) - { return std::pair<gr::toffset,gr::toffset>(0, fTextLength); } - - virtual bool sameSegment(gr::toffset firstChar, gr::toffset secondChar) - { return true; } - - virtual bool getRightToLeft(gr::toffset charIndex) - { return (fDirLevel & 1) != 0; } - - virtual unsigned int getDirectionDepth(gr::toffset charIndex) - { return fDirLevel; } - - virtual float getVerticalOffset(gr::toffset charIndex) - { return 0.0; } - - virtual gr::isocode getLanguage(gr::toffset charIndex) - { return fLanguage; } - - virtual size_t getFontFeatures(gr::toffset charIndex, gr::FeatureSetting properties[64]); - - virtual bool featureVariations() { return false; }; -protected: - int fDirLevel; - const UInt16* fTextBuffer; - size_t fTextLength; - gr::isocode fLanguage; - size_t fNumFeatures; - const gr::FeatureSetting* fFeatureSettings; - - static const gr::isocode kUnknownLanguage; -}; - -#endif /* __XETEX_GR_LAYOUT__ */ |