X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/567eaf951fd8192e72d9f85a896f19b97c8d6949..06578d6778bff8aa2bd6a2387651dd0ba55aa27c:/lib/gdi/font.h diff --git a/lib/gdi/font.h b/lib/gdi/font.h index a38454d1..dbecd493 100644 --- a/lib/gdi/font.h +++ b/lib/gdi/font.h @@ -1,6 +1,8 @@ #ifndef __FONT_H #define __FONT_H +#ifndef SWIG + #include #include FT_FREETYPE_H #include FT_CACHE_H @@ -8,7 +10,6 @@ #include FT_CACHE_SMALL_BITMAPS_H #include - #include #include #include @@ -16,14 +17,18 @@ #include #include +#include + class FontRenderClass; class Font; class gDC; class gFont; class gRGB; +#endif class fontRenderClass { +#ifndef SWIG friend class Font; friend class eTextPara; fbClass *fb; @@ -43,17 +48,24 @@ class fontRenderClass FTC_FaceID getFaceID(const std::string &face); FT_Error getGlyphBitmap(FTC_Image_Desc *font, FT_ULong glyph_index, FTC_SBit *sbit); static fontRenderClass *instance; +#else + fontRenderClass(); + ~fontRenderClass(); +#endif public: float getLineHeight(const gFont& font); - std::string AddFont(const std::string &filename, const std::string &name, int scale); static fontRenderClass *getInstance(); - FT_Error FTC_Face_Requester(FTC_FaceID face_id, - FT_Face* aface); +#ifndef SWIG + std::string AddFont(const std::string &filename, const std::string &name, int scale); + FT_Error FTC_Face_Requester(FTC_FaceID face_id, FT_Face* aface); int getFont(ePtr &font, const std::string &face, int size, int tabwidth=-1); fontRenderClass(); ~fontRenderClass(); +#endif }; +#ifndef SWIG + #define RS_WRAP 1 #define RS_DOT 2 #define RS_DIRECT 4 @@ -62,8 +74,10 @@ public: #define GS_ISSPACE 1 #define GS_ISFIRST 2 #define GS_USED 4 - #define GS_INVERT 8 +#define GS_SOFTHYPHEN 16 +#define GS_HYPHEN 32 +#define GS_CANBREAK (GS_ISSPACE|GS_SOFTHYPHEN|GS_HYPHEN) struct pGlyph { @@ -88,6 +102,7 @@ private: int use_kerning; int previous; static std::string replacement_facename; + static std::set forced_replaces; eRect area; ePoint cursor; @@ -110,9 +125,10 @@ public: virtual ~eTextPara(); static void setReplacementFont(std::string font) { replacement_facename=font; } + static void forceReplacementGlyph(int unicode) { forced_replaces.insert(unicode); } void setFont(const gFont *font); - int renderString(const std::string &string, int flags=0); + int renderString(const char *string, int flags=0); void clear(); @@ -178,4 +194,6 @@ public: extern fontRenderClass *font; +#endif // !SWIG + #endif