]> code.delx.au - gnu-emacs/blobdiff - src/font.h
Merge from emacs-23; up to 2010-06-02T00:10:42Z!yamaoka@jpl.org.
[gnu-emacs] / src / font.h
index 40d75117909ae8972f9fb966c04c7141f5d52216..511a7de3a163f291ccb73a6def3de30cd43b6bca 100644 (file)
@@ -1,6 +1,6 @@
 /* font.h -- Interface definition for font handling.
 /* font.h -- Interface definition for font handling.
-   Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
-   Copyright (C) 2006, 2007, 2008, 2009, 2010
+   Copyright (C) 2006-2011 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
 
      National Institute of Advanced Industrial Science and Technology (AIST)
      Registration Number H13PRO009
 
@@ -159,14 +159,19 @@ enum font_property_index
     /* This value is the length of font-spec vector.  */
     FONT_SPEC_MAX,
 
     /* This value is the length of font-spec vector.  */
     FONT_SPEC_MAX,
 
-    /* The followings are used only for a font-entity.  */
+    /* The followings are used only for a font-entity and a font-object.  */
 
     /* List of font-objects opened from the font-entity.  */
     FONT_OBJLIST_INDEX = FONT_SPEC_MAX,
 
 
     /* List of font-objects opened from the font-entity.  */
     FONT_OBJLIST_INDEX = FONT_SPEC_MAX,
 
+    /* Font-entity from which the font-object is opened.  */
+    FONT_ENTITY_INDEX = FONT_SPEC_MAX,
+
     /* This value is the length of font-entity vector.  */
     FONT_ENTITY_MAX,
 
     /* This value is the length of font-entity vector.  */
     FONT_ENTITY_MAX,
 
+    /* The followings are used only for a font-object.  */
+
     /* XLFD name of the font (string). */
     FONT_NAME_INDEX = FONT_ENTITY_MAX,
 
     /* XLFD name of the font (string). */
     FONT_NAME_INDEX = FONT_ENTITY_MAX,
 
@@ -234,7 +239,9 @@ enum font_property_index
   ASET ((font), prop, make_number (font_style_to_value (prop, val, 1)))
 
 extern Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClang, QCscript;
   ASET ((font), prop, make_number (font_style_to_value (prop, val, 1)))
 
 extern Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClang, QCscript;
-extern Lisp_Object QCavgwidth, QCfont_entity, QCfc_unknown_spec;
+extern Lisp_Object QCavgwidth, QCantialias, QCfont_entity, QCfc_unknown_spec;
+extern Lisp_Object Qp;
+
 
 /* Important character set symbols.  */
 extern Lisp_Object Qascii_0;
 
 /* Important character set symbols.  */
 extern Lisp_Object Qascii_0;
@@ -574,7 +581,7 @@ struct font_driver
      FONT-ENTITY and it must be opened to check it, return -1.  */
   int (*has_char) (Lisp_Object font, int c);
 
      FONT-ENTITY and it must be opened to check it, return -1.  */
   int (*has_char) (Lisp_Object font, int c);
 
-  /* Return a glyph code of FONT for characer C (Unicode code point).
+  /* Return a glyph code of FONT for character C (Unicode code point).
      If FONT doesn't have such a glyph, return FONT_INVALID_CODE.  */
   unsigned (*encode_char) (struct font *font, int c);
 
      If FONT doesn't have such a glyph, return FONT_INVALID_CODE.  */
   unsigned (*encode_char) (struct font *font, int c);
 
@@ -735,11 +742,8 @@ EXFUN (Fmerge_font_spec, 2);
 EXFUN (Ffont_get, 2);
 EXFUN (Ffont_put, 3);
 EXFUN (Flist_fonts, 4);
 EXFUN (Ffont_get, 2);
 EXFUN (Ffont_put, 3);
 EXFUN (Flist_fonts, 4);
-EXFUN (Ffont_family_list, 1);
-EXFUN (Fclear_font_cache, 0);
 EXFUN (Ffont_xlfd_name, 2);
 
 EXFUN (Ffont_xlfd_name, 2);
 
-extern Lisp_Object font_make_spec (void);
 extern Lisp_Object font_make_entity (void);
 extern Lisp_Object font_make_object (int, Lisp_Object, int);
 
 extern Lisp_Object font_make_entity (void);
 extern Lisp_Object font_make_object (int, Lisp_Object, int);
 
@@ -760,11 +764,9 @@ extern Lisp_Object font_get_name (Lisp_Object font_object);
 extern Lisp_Object font_spec_from_name (Lisp_Object font_name);
 extern Lisp_Object font_get_frame (Lisp_Object font_object);
 extern int font_has_char (FRAME_PTR, Lisp_Object, int);
 extern Lisp_Object font_spec_from_name (Lisp_Object font_name);
 extern Lisp_Object font_get_frame (Lisp_Object font_object);
 extern int font_has_char (FRAME_PTR, Lisp_Object, int);
-extern unsigned font_encode_char (Lisp_Object, int);
 
 extern void font_clear_prop (Lisp_Object *attrs,
                              enum font_property_index prop);
 
 extern void font_clear_prop (Lisp_Object *attrs,
                              enum font_property_index prop);
-extern void font_update_lface (FRAME_PTR f, Lisp_Object *attrs);
 extern Lisp_Object font_find_for_lface (FRAME_PTR f, Lisp_Object *lface,
                                         Lisp_Object spec, int c);
 extern Lisp_Object font_open_for_lface (FRAME_PTR f, Lisp_Object entity,
 extern Lisp_Object font_find_for_lface (FRAME_PTR f, Lisp_Object *lface,
                                         Lisp_Object spec, int c);
 extern Lisp_Object font_open_for_lface (FRAME_PTR f, Lisp_Object entity,
@@ -776,30 +778,24 @@ extern void font_prepare_for_face (FRAME_PTR f, struct face *face);
 extern void font_done_for_face (FRAME_PTR f, struct face *face);
 
 extern Lisp_Object font_open_by_spec (FRAME_PTR f, Lisp_Object spec);
 extern void font_done_for_face (FRAME_PTR f, struct face *face);
 
 extern Lisp_Object font_open_by_spec (FRAME_PTR f, Lisp_Object spec);
-extern Lisp_Object font_open_by_name (FRAME_PTR f, char *name);
+extern Lisp_Object font_open_by_name (FRAME_PTR f, const char *name);
 extern void font_close_object (FRAME_PTR f, Lisp_Object font_object);
 
 extern void font_close_object (FRAME_PTR f, Lisp_Object font_object);
 
-extern Lisp_Object font_intern_prop (char *str, int len, int force_symbol);
+extern Lisp_Object font_intern_prop (const char *str, int len, int force_symbol);
 extern void font_update_sort_order (int *order);
 
 extern void font_parse_family_registry (Lisp_Object family,
                                         Lisp_Object registry,
                                         Lisp_Object spec);
 extern void font_update_sort_order (int *order);
 
 extern void font_parse_family_registry (Lisp_Object family,
                                         Lisp_Object registry,
                                         Lisp_Object spec);
-extern Lisp_Object font_spec_from_family_registry (Lisp_Object family,
-                                                   Lisp_Object registry);
 
 extern int font_parse_xlfd (char *name, Lisp_Object font);
 extern int font_unparse_xlfd (Lisp_Object font, int pixel_size,
                               char *name, int bytes);
 
 extern int font_parse_xlfd (char *name, Lisp_Object font);
 extern int font_unparse_xlfd (Lisp_Object font, int pixel_size,
                               char *name, int bytes);
-extern int font_parse_fcname (char *name, Lisp_Object font);
 extern int font_unparse_fcname (Lisp_Object font, int pixel_size,
                                 char *name, int bytes);
 extern int font_unparse_fcname (Lisp_Object font, int pixel_size,
                                 char *name, int bytes);
-extern int font_unparse_gtkname (Lisp_Object, struct frame *, char *, int);
 extern void register_font_driver (struct font_driver *driver, FRAME_PTR f);
 extern void free_font_driver_list (FRAME_PTR f);
 extern Lisp_Object font_update_drivers (FRAME_PTR f, Lisp_Object list);
 extern void register_font_driver (struct font_driver *driver, FRAME_PTR f);
 extern void free_font_driver_list (FRAME_PTR f);
 extern Lisp_Object font_update_drivers (FRAME_PTR f, Lisp_Object list);
-extern Lisp_Object font_at (int c, EMACS_INT pos, struct face *face,
-                            struct window *w, Lisp_Object object);
 extern Lisp_Object font_range (EMACS_INT, EMACS_INT *,
                               struct window *, struct face *,
                               Lisp_Object);
 extern Lisp_Object font_range (EMACS_INT, EMACS_INT *,
                               struct window *, struct face *,
                               Lisp_Object);
@@ -814,31 +810,47 @@ extern int font_put_frame_data (FRAME_PTR f,
 extern void *font_get_frame_data (FRAME_PTR f,
                                   struct font_driver *driver);
 
 extern void *font_get_frame_data (FRAME_PTR f,
                                   struct font_driver *driver);
 
+extern void font_filter_properties (Lisp_Object font,
+                                   Lisp_Object alist,
+                                   const char *const boolean_properties[],
+                                   const char *const non_boolean_properties[]);
+
 #ifdef HAVE_FREETYPE
 extern struct font_driver ftfont_driver;
 #ifdef HAVE_FREETYPE
 extern struct font_driver ftfont_driver;
+extern void syms_of_ftfont (void);
 #endif /* HAVE_FREETYPE */
 #ifdef HAVE_X_WINDOWS
 extern struct font_driver xfont_driver;
 extern struct font_driver ftxfont_driver;
 #endif /* HAVE_FREETYPE */
 #ifdef HAVE_X_WINDOWS
 extern struct font_driver xfont_driver;
 extern struct font_driver ftxfont_driver;
+extern void syms_of_xfont (void);
+extern void syms_of_ftxfont (void);
 #ifdef HAVE_XFT
 extern struct font_driver xftfont_driver;
 #ifdef HAVE_XFT
 extern struct font_driver xftfont_driver;
+extern void syms_of_xftfont (void);
 #endif /* HAVE_XFT */
 #endif /* HAVE_XFT */
+#ifdef HAVE_BDFFONT
+extern void syms_of_bdffont (void);
+#endif /* HAVE_BDFFONT */
 #endif /* HAVE_X_WINDOWS */
 #ifdef WINDOWSNT
 extern struct font_driver w32font_driver;
 extern struct font_driver uniscribe_font_driver;
 #endif /* HAVE_X_WINDOWS */
 #ifdef WINDOWSNT
 extern struct font_driver w32font_driver;
 extern struct font_driver uniscribe_font_driver;
+extern void syms_of_w32font (void);
 #endif /* WINDOWSNT */
 #ifdef HAVE_NS
 #endif /* WINDOWSNT */
 #ifdef HAVE_NS
+extern Lisp_Object Qfontsize;
 extern struct font_driver nsfont_driver;
 extern struct font_driver nsfont_driver;
+extern void syms_of_nsfont (void);
 #endif /* HAVE_NS */
 
 #ifndef FONT_DEBUG
 #define FONT_DEBUG
 #endif
 
 #endif /* HAVE_NS */
 
 #ifndef FONT_DEBUG
 #define FONT_DEBUG
 #endif
 
-extern Lisp_Object Vfont_log;
-extern void font_add_log (char *, Lisp_Object, Lisp_Object);
-extern void font_deferred_log (char *, Lisp_Object, Lisp_Object);
+extern Lisp_Object QCfoundry;
+
+extern void font_add_log (const char *, Lisp_Object, Lisp_Object);
+extern void font_deferred_log (const char *, Lisp_Object, Lisp_Object);
 
 #define FONT_ADD_LOG(ACTION, ARG, RESULT)      \
   do {                                         \
 
 #define FONT_ADD_LOG(ACTION, ARG, RESULT)      \
   do {                                         \
@@ -860,5 +872,3 @@ extern void font_deferred_log (char *, Lisp_Object, Lisp_Object);
 
 #endif /* not EMACS_FONT_H */
 
 
 #endif /* not EMACS_FONT_H */
 
-/* arch-tag: 3b7260c3-5bec-4d6b-a0db-95c1b431b1a2
-   (do not change this comment) */