aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenichi Handa2008-08-29 07:55:02 +0000
committerKenichi Handa2008-08-29 07:55:02 +0000
commit8057d3c0149f7ee04a46825e94bee5c9247624a0 (patch)
tree7df68d097696161e2f3174984ef16f461088e027
parent071132a958b5c4e4673cdf6e5057db1bc65837fe (diff)
downloademacs-8057d3c0149f7ee04a46825e94bee5c9247624a0.tar.gz
emacs-8057d3c0149f7ee04a46825e94bee5c9247624a0.zip
* font.h (enum lgstring_indices): Delete it.
(LGSTRING_XXX, LGLYPH_XXX): These macros moved to composite.h. (enum lglyph_indices): Likewise. (font_range): Extern adjusted. (font_fill_lglyph_metrics): Extern it.
-rw-r--r--src/font.h100
1 files changed, 14 insertions, 86 deletions
diff --git a/src/font.h b/src/font.h
index 2c0bc516bde..0235463e548 100644
--- a/src/font.h
+++ b/src/font.h
@@ -489,77 +489,6 @@ struct font_bitmap
489#define FONT_PIXEL_SIZE_QUANTUM 1 489#define FONT_PIXEL_SIZE_QUANTUM 1
490 490
491struct face; 491struct face;
492struct composition;
493
494/* Macros for lispy glyph-string. */
495enum lgstring_indices
496 {
497 LGSTRING_IX_FONT, LGSTRING_IX_WIDTH,
498 LGSTRING_IX_LBEARING, LGSTRING_IX_RBEARING,
499 LGSTRING_IX_ASCENT, LGSTRING_IX_DESCENT
500 };
501#define LGSTRING_SLOT(lgs, ix) AREF (AREF ((lgs), 0), ix)
502#define LGSTRING_FONT(lgs) LGSTRING_SLOT (lgs, LGSTRING_IX_FONT)
503#define LGSTRING_WIDTH(lgs) XINT (LGSTRING_SLOT (lgs, LGSTRING_IX_WIDTH))
504#define LGSTRING_LBEARING(lgs) XINT (LGSTRING_SLOT (lgs, LGSTRING_IX_LBEARING))
505#define LGSTRING_RBEARING(lgs) XINT (LGSTRING_SLOT (lgs, LGSTRING_IX_RBEARING))
506#define LGSTRING_ASCENT(lgs) XINT (LGSTRING_SLOT (lgs, LGSTRING_IX_ASCENT))
507#define LGSTRING_DESCENT(lgs) XINT (LGSTRING_SLOT (lgs, LGSTRING_IX_DESCENT))
508#define LGSTRING_SET_SLOT(lgs, ix, val) ASET (AREF ((lgs), 0), ix, (val))
509#define LGSTRING_SET_FONT(lgs, val) \
510 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_FONT, (val))
511#define LGSTRING_SET_WIDTH(lgs, val) \
512 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_WIDTH, make_number (val))
513#define LGSTRING_SET_LBEARING(lgs, val) \
514 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_LBEARING, make_number (val))
515#define LGSTRING_SET_RBEARING(lgs, val) \
516 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_RBEARING, make_number (val))
517#define LGSTRING_SET_ASCENT(lgs, val) \
518 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_ASCENT, make_number (val))
519#define LGSTRING_SET_DESCENT(lgs, val) \
520 LGSTRING_SET_SLOT(lgs, LGSTRING_IX_DESCENT, make_number (val))
521
522#define LGSTRING_LENGTH(lgs) (ASIZE ((lgs)) - 1)
523#define LGSTRING_GLYPH(lgs, idx) AREF ((lgs), (idx) + 1)
524#define LGSTRING_SET_GLYPH(lgs, idx, val) ASET ((lgs), (idx) + 1, (val))
525
526/* Vector size of Lispy glyph. */
527enum lglyph_indices
528 {
529 LGLYPH_IX_FROM, LGLYPH_IX_TO, LGLYPH_IX_CHAR, LGLYPH_IX_CODE,
530 LGLYPH_IX_WIDTH, LGLYPH_IX_LBEARING, LGLYPH_IX_RBEARING,
531 LGLYPH_IX_ASCENT, LGLYPH_IX_DESCENT, LGLYPH_IX_ADJUSTMENT,
532 /* Not an index. */
533 LGLYPH_SIZE
534 };
535#define LGLYPH_FROM(g) XINT (AREF ((g), LGLYPH_IX_FROM))
536#define LGLYPH_TO(g) XINT (AREF ((g), LGLYPH_IX_TO))
537#define LGLYPH_CHAR(g) XINT (AREF ((g), LGLYPH_IX_CHAR))
538#define LGLYPH_CODE(g) XUINT (AREF ((g), LGLYPH_IX_CODE))
539#define LGLYPH_WIDTH(g) XINT (AREF ((g), LGLYPH_IX_WIDTH))
540#define LGLYPH_LBEARING(g) XINT (AREF ((g), LGLYPH_IX_LBEARING))
541#define LGLYPH_RBEARING(g) XINT (AREF ((g), LGLYPH_IX_RBEARING))
542#define LGLYPH_ASCENT(g) XINT (AREF ((g), LGLYPH_IX_ASCENT))
543#define LGLYPH_DESCENT(g) XINT (AREF ((g), LGLYPH_IX_DESCENT))
544#define LGLYPH_ADJUSTMENT(g) AREF ((g), LGLYPH_IX_ADJUSTMENT)
545#define LGLYPH_SET_FROM(g, val) ASET ((g), LGLYPH_IX_FROM, make_number (val))
546#define LGLYPH_SET_TO(g, val) ASET ((g), LGLYPH_IX_TO, make_number (val))
547#define LGLYPH_SET_CHAR(g, val) ASET ((g), LGLYPH_IX_CHAR, make_number (val))
548/* FIXME: we should use make_uint_number here. */
549#define LGLYPH_SET_CODE(g, val) ASET ((g), LGLYPH_IX_CODE, make_number (val))
550#define LGLYPH_SET_WIDTH(g, val) ASET ((g), LGLYPH_IX_WIDTH, make_number (val))
551#define LGLYPH_SET_LBEARING(g, val) ASET ((g), LGLYPH_IX_RBEARING, make_number (val))
552#define LGLYPH_SET_RBEARING(g, val) ASET ((g), LGLYPH_IX_LBEARING, make_number (val))
553#define LGLYPH_SET_ASCENT(g, val) ASET ((g), LGLYPH_IX_ASCENT, make_number (val))
554#define LGLYPH_SET_DESCENT(g, val) ASET ((g), LGLYPH_IX_DESCENT, make_number (val))
555#define LGLYPH_SET_ADJUSTMENT(g, val) ASET ((g), LGLYPH_IX_ADJUSTMENT, (val))
556
557#define LGLYPH_XOFF(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
558 ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 0)) : 0)
559#define LGLYPH_YOFF(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
560 ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 1)) : 0)
561#define LGLYPH_WADJUST(g) (VECTORP (LGLYPH_ADJUSTMENT (g)) \
562 ? XINT (AREF (LGLYPH_ADJUSTMENT (g), 2)) : 0)
563 492
564#define FONT_INVALID_CODE 0xFFFFFFFF 493#define FONT_INVALID_CODE 0xFFFFFFFF
565 494
@@ -696,7 +625,7 @@ struct font_driver
696 625
697 /* Optional. 626 /* Optional.
698 Make the font driver ready for frame F. Usually this function 627 Make the font driver ready for frame F. Usually this function
699 makes some data specific to F and store it in F by calling 628 makes some data specific to F and stores it in F by calling
700 font_put_frame_data (). */ 629 font_put_frame_data (). */
701 int (*start_for_frame) P_ ((FRAME_PTR f)); 630 int (*start_for_frame) P_ ((FRAME_PTR f));
702 631
@@ -707,17 +636,18 @@ struct font_driver
707 636
708 /* Optional. 637 /* Optional.
709 638
710 Shape text in LGSTRING. See the docstring of `font-make-gstring' 639 Shape text in GSTRING. See the docstring of
711 for the format of LGSTRING. If the (N+1)th element of LGSTRING 640 `composition-get-gstring' for the format of GSTRING. If the
712 is nil, input of shaping is from the 1st to (N)th elements. In 641 (N+1)th element of GSTRING is nil, input of shaping is from the
713 each input glyph, FROM, TO, CHAR, and CODE are already set. 642 1st to (N)th elements. In each input glyph, FROM, TO, CHAR, and
643 CODE are already set.
714 644
715 This function updates all fields of the input glyphs. If the 645 This function updates all fields of the input glyphs. If the
716 output glyphs (M) are more than the input glyphs (N), (N+1)th 646 output glyphs (M) are more than the input glyphs (N), (N+1)th
717 through (M)th elements of LGSTRING are updated possibly by making 647 through (M)th elements of GSTRING are updated possibly by making
718 a new glyph object and storing it in LGSTRING. If (M) is greater 648 a new glyph object and storing it in GSTRING. If (M) is greater
719 than the length of LGSTRING, nil should be return. In that case, 649 than the length of GSTRING, nil should be return. In that case,
720 this function is called again with the larger LGSTRING. */ 650 this function is called again with the larger GSTRING. */
721 Lisp_Object (*shape) P_ ((Lisp_Object lgstring)); 651 Lisp_Object (*shape) P_ ((Lisp_Object lgstring));
722 652
723 /* Optional. 653 /* Optional.
@@ -827,12 +757,10 @@ extern void free_font_driver_list P_ ((FRAME_PTR f));
827extern Lisp_Object font_update_drivers P_ ((FRAME_PTR f, Lisp_Object list)); 757extern Lisp_Object font_update_drivers P_ ((FRAME_PTR f, Lisp_Object list));
828extern Lisp_Object font_at P_ ((int c, EMACS_INT pos, struct face *face, 758extern Lisp_Object font_at P_ ((int c, EMACS_INT pos, struct face *face,
829 struct window *w, Lisp_Object object)); 759 struct window *w, Lisp_Object object));
830extern EMACS_INT font_range P_ ((EMACS_INT pos, EMACS_INT limit, 760extern EMACS_INT font_range P_ ((EMACS_INT, EMACS_INT *,
831 struct face *face, FRAME_PTR f, 761 struct window *, struct face *,
832 Lisp_Object object)); 762 Lisp_Object));
833 763extern void font_fill_lglyph_metrics P_ ((Lisp_Object, Lisp_Object));
834extern struct font *font_prepare_composition P_ ((struct composition *cmp,
835 FRAME_PTR f));
836 764
837extern Lisp_Object font_put_extra P_ ((Lisp_Object font, Lisp_Object prop, 765extern Lisp_Object font_put_extra P_ ((Lisp_Object font, Lisp_Object prop,
838 Lisp_Object val)); 766 Lisp_Object val));