*** empty log message ***
[m17n/m17n-lib.git] / src / internal-gui.h
index 06081ad..d23ae86 100644 (file)
@@ -29,8 +29,6 @@ enum MDeviceType
     MDEVICE_SUPPORT_INPUT = 2
   };
 
-extern MSymbol Mfont;
-
 typedef struct MRealizedFont MRealizedFont;
 typedef struct MRealizedFace MRealizedFace;
 typedef struct MRealizedFontset MRealizedFontset;
@@ -56,6 +54,8 @@ struct MFrame
       character of the default face.  */
   int space_width;
 
+  int average_width;
+
   /** The default ascent and descent of a line.  It is ascent and
       descent of ASCII font of the default face.  */
   int ascent, descent;
@@ -74,6 +74,9 @@ struct MFrame
   /** Logical OR of enum MDeviceType.  */
   int device_type;
 
+  /** Resolution (dots per inch) of the device.  */
+  int dpi;
+
   /** Correction of functions to manipulate the device.  */
   MDeviceDriver *driver;
 
@@ -112,31 +115,27 @@ enum glyph_type
     GLYPH_TYPE_MAX
   };
 
-typedef struct
-{
-  MSymbol script;
-  MSymbol langsys;
-  MSymbol gsub_features;
-  MSymbol gpos_features;
-} FontLayoutCmdOTF;
+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;
-#ifdef HAVE_OTF
-  FontLayoutCmdOTF *otf_cmd;
-#endif
   unsigned enabled : 1;
   unsigned left_padding : 1;
   unsigned right_padding : 1;
   unsigned otf_encoded : 1;
   unsigned bidi_level : 6;
+  enum glyph_category category : 2;
   enum glyph_type type : 3;
   int combining_code;
 } MGlyph;
@@ -150,24 +149,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 <control>.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;
 };
 
@@ -229,9 +222,11 @@ struct MGlyphString
 
 #define COMBINING_CODE_CLASS(code) ((code) & 0xFFFFFF)
 
-typedef struct MGlyphString MGlyphString;
+#define MAKE_PRECOMPUTED_COMBINDING_CODE() (0x2000000)
 
-typedef struct MFontDriver MFontDriver;
+#define COMBINING_PRECOMPUTED_P(code) ((code) & 0x2000000)
+
+typedef struct MGlyphString MGlyphString;
 
 typedef struct
 {
@@ -283,9 +278,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 ();