diff options
Diffstat (limited to 'Build/source/libs/graphite/include/graphite/ITextSource.h')
-rw-r--r-- | Build/source/libs/graphite/include/graphite/ITextSource.h | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/Build/source/libs/graphite/include/graphite/ITextSource.h b/Build/source/libs/graphite/include/graphite/ITextSource.h new file mode 100644 index 00000000000..154d80296e3 --- /dev/null +++ b/Build/source/libs/graphite/include/graphite/ITextSource.h @@ -0,0 +1,69 @@ +/*--------------------------------------------------------------------*//*:Ignore this sentence. +Copyright (C) 1999, 2001 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: ITextSource.h +Responsibility: Sharon Correll +Last reviewed: Not yet. + +Description: + An interface for a text source that is used by the Graphite engine. +-------------------------------------------------------------------------------*//*:End Ignore*/ +#ifdef _MSC_VER +#pragma once +#endif +#ifndef IGRTXTSRC_INCLUDED +#define IGRTXTSRC_INCLUDED + + +#include "GrAppData.h" +#include "GrStructs.h" +#include "GrResult.h" + +namespace gr +{ + +/*---------------------------------------------------------------------------------------------- + Class: ITextSource + This class provides an interface for a text source for the Graphite engine. +----------------------------------------------------------------------------------------------*/ +class ITextSource +{ +public: + virtual ~ITextSource() {}; + virtual UtfType utfEncodingForm() = 0; + virtual size_t getLength() = 0; + virtual size_t fetch(toffset ichMin, size_t cch, utf32 * prgchBuffer) = 0; + virtual size_t fetch(toffset ichMin, size_t cch, utf16 * prgchwBuffer) = 0; + virtual size_t fetch(toffset ichMin, size_t cch, utf8 * prgchsBuffer) = 0; + virtual bool getRightToLeft(toffset ich) = 0; + virtual unsigned int getDirectionDepth(toffset ich) = 0; + virtual float getVerticalOffset(toffset ich) = 0; + virtual isocode getLanguage(toffset ich) = 0; + + virtual std::pair<toffset, toffset> propertyRange(toffset ich) = 0; + virtual size_t getFontFeatures(toffset ich, FeatureSetting * prgfset) = 0; + virtual bool sameSegment(toffset ich1, toffset ich2) = 0; +}; + + +/*---------------------------------------------------------------------------------------------- + Class: IColorTextSource + Defines a method to get the color informtion from the text source. + It is needed for SegmentPainters that want to handle color. +----------------------------------------------------------------------------------------------*/ +class IColorTextSource : public ITextSource +{ +public: + virtual void getColors(toffset ich, int * pclrFore, int * pclrBack) = 0; +}; + +} // namespace gr + +#if defined(GR_NO_NAMESPACE) +using namespace gr; +#endif + +#endif // !IGRTXTSRC_INCLUDED |