X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Finternal-gui.h;h=4a7e9e0d2c42b59da669c6b16fe99e1653ff52af;hb=c42974a7971c8d3bcd6e9356418d3f2182f7b08b;hp=badbd8ca38f3b736aab243c46b492e4fdcf4d937;hpb=521adf48df5a3d1d70046e914e86654523c3116b;p=m17n%2Fm17n-lib.git diff --git a/src/internal-gui.h b/src/internal-gui.h index badbd8c..4a7e9e0 100644 --- a/src/internal-gui.h +++ b/src/internal-gui.h @@ -110,12 +110,18 @@ enum glyph_type GLYPH_TYPE_MAX }; +enum glyph_category + { + GLYPH_CATEGORY_NORMAL, + GLYPH_CATEGORY_MODIFIER, + GLYPH_CATEGORY_FORMATTER + }; + typedef struct { int pos, to; int c; unsigned code; - MSymbol category; MRealizedFace *rface; short width, ascent, descent, lbearing, rbearing; short xoff, yoff; @@ -124,7 +130,7 @@ typedef struct unsigned right_padding : 1; unsigned otf_encoded : 1; unsigned bidi_level : 6; - unsigned bidi_sensitive : 1; + enum glyph_category category : 2; enum glyph_type type : 3; int combining_code; } MGlyph; @@ -138,24 +144,18 @@ struct MGlyphString int size, inc, used; MGlyph *glyphs; - MText *mt; int from, to; short width, height, ascent, descent; short physical_ascent, physical_descent, lbearing, rbearing; short text_ascent, text_descent, line_ascent, line_descent; int indent, width_limit; - /* Members to keep temporary data while layouting. */ - short sub_width, sub_lbearing, sub_rbearing; - /* Copied for .anti_alias but never set if the frame's depth is less than 8. */ unsigned anti_alias : 1; MDrawControl control; - MDrawRegion region; - struct MGlyphString *next, *top; }; @@ -217,6 +217,10 @@ struct MGlyphString #define COMBINING_CODE_CLASS(code) ((code) & 0xFFFFFF) +#define MAKE_PRECOMPUTED_COMBINDING_CODE() (0x2000000) + +#define COMBINING_PRECOMPUTED_P(code) ((code) & 0x2000000) + typedef struct MGlyphString MGlyphString; typedef struct MFontDriver MFontDriver; @@ -271,9 +275,9 @@ struct MDeviceDriver MSymbol (*parse_event) (MFrame *frame, void *arg, int *modifiers); }; -extern MSymbol Mx; +extern MSymbol Mlatin; + extern MSymbol Mgd; -extern MSymbol Mfreetype; extern int mfont__init (); extern void mfont__fini ();