+ functions for accessing values inside a XftFont

This commit is contained in:
eknauel 2003-10-26 16:42:31 +00:00
parent 315948f857
commit 359f7342ad
3 changed files with 62 additions and 14 deletions

View File

@ -2,8 +2,6 @@
XFT_REC_ACCESSOR_MAKER(scx_enter_xftpattern, XftPattern, scx_xftpattern_record_type);
XFT_REC_ACCESSOR_MAKER(scx_enter_xftfont, XftFont, scx_xftfont_record_type);
XFT_REC_ACCESSOR_MAKER(scx_enter_xftdraw, XftDraw, scx_xftdraw_record_type);
XFT_REC_ACCESSOR_MAKER(scx_enter_xftcolor, XftColor, scx_xftcolor_record_type);
@ -12,6 +10,19 @@ XFT_REC_ACCESSOR_MAKER(scx_enter_xftobjectset, XftObjectSet, scx_xftobjectset_re
XFT_REC_ACCESSOR_MAKER(scx_enter_xftfontset, XftFontSet, scx_xftfontset_record_type);
s48_value scx_enter_xftfont(XftFont *xf)
{
s48_value rec = S48_FALSE;
S48_DECLARE_GC_PROTECT(1);
S48_GC_PROTECT_1(rec);
rec = s48_make_record(scx_xftfont_record_type);
S48_RECORD_SET(rec, 0, s48_enter_integer((long) xf));
S48_RECORD_SET(rec, 1, scx_enter_xftpattern(xf->pattern));
S48_GC_UNPROTECT();
return rec;
}
s48_value scx_XftPatternCreate(void)
{
return scx_enter_xftpattern(XftPatternCreate());
@ -467,6 +478,20 @@ s48_value scx_XftDefaultHasRender(s48_value sdpy)
return XftDefaultHasRender(scx_extract_display(sdpy)) ? S48_TRUE : S48_FALSE;
}
#define XFTFONT_GET(FUN, FN) \
s48_value FUN(s48_value sxf) { \
return s48_enter_integer(scx_extract_xftfont(sxf)->FN); \
}
XFTFONT_GET(scx_xftfont_ascent_get, ascent);
XFTFONT_GET(scx_xftfont_descent_get, descent);
XFTFONT_GET(scx_xftfont_height_get, height);
XFTFONT_GET(scx_xftfont_max_advance_width_get, max_advance_width);
s48_value scx_xftfont_pattern_get_internal(s48_value sxf)
{
return scx_enter_xftpattern(scx_extract_xftfont(sxf)->pattern);
}
void scx_xft_init(void)
{
@ -617,4 +642,10 @@ void scx_xft_init(void)
S48_EXPORT_FUNCTION(scx_XftFontSetPrint);
S48_EXPORT_FUNCTION(scx_XftDefaultHasRender);
S48_EXPORT_FUNCTION(scx_xftfont_ascent_get);
S48_EXPORT_FUNCTION(scx_xftfont_descent_get);
S48_EXPORT_FUNCTION(scx_xftfont_height_get);
S48_EXPORT_FUNCTION(scx_xftfont_max_advance_width_get);
S48_EXPORT_FUNCTION(scx_xftfont_pattern_get_internal);
}

View File

@ -7,6 +7,7 @@
(export
xft-pattern?
xft-font?
xft-font-pattern
xft-color?
xft-objectset?
xft-fontset?

View File

@ -7,9 +7,10 @@
(define-exported-binding "xft-pattern" :xft-pattern)
(define-record-type xft-font :xft-font
(make-xft-font x-pointer)
(make-xft-font c-pointer pattern)
xft-font?
(x-pointer xft-font-x-pointer))
(c-pointer xft-font-c-pointer)
(pattern xft-font-pattern))
(define-exported-binding "xft-font" :xft-font)
@ -230,22 +231,22 @@
(add-finalizer! xft-pattern scx-xft-pattern-destroy)
(values result xft-pattern))))
(define (scx-xft-font-open-pattern display xft-pattern)
(let ((xft-font (scx-xft-font-open-pattern-internal display xft-pattern)))
(add-finalizer! xft-font scx-xft-font-close)
xft-font))
(define (scx-xft-font-open-pattern display pattern)
(let ((font (scx-xft-font-open-pattern-internal display pattern)))
(add-finalizer! font scx-xft-font-close)
font))
(define (scx-xft-font-open-name display screen name)
(let* ((screen-number (screen:number screen))
(xft-font (scx-xft-font-open-name-internal display screen-number name)))
(add-finalizer! xft-font scx-xft-font-close)
xft-font))
(font (scx-xft-font-open-name-internal display screen-number name)))
(add-finalizer! font scx-xft-font-close)
font))
(define (scx-xft-font-open-xlfd display screen name)
(let* ((screen-numer (screen:number screen))
(xft-font (scx-xft-font-open-xlfd-internal display screen-numer name)))
(add-finalizer! xft-font scx-xft-font-close)
xft-font))
(font (scx-xft-font-open-xlfd-internal display screen-numer name)))
(add-finalizer! font scx-xft-font-close)
font))
(define (scx-xft-draw-create display drawable visual colormap)
(let ((xft-draw (scx-xft-draw-create-internal display drawable visual colormap)))
@ -517,3 +518,18 @@
(display)
"scx_XftDefaultHasRender")
(import-lambda-definition scx-xft-xft-font-ascent
(xft-font)
"scx_xftfont_ascent_get")
(import-lambda-definition scx-xft-xft-font-descent
(xft-font)
"scx_xftfont_descent_get")
(import-lambda-definition scx-xft-xft-font-height
(xft-font)
"scx_xftfont_height_get")
(import-lambda-definition scx-xft-xft-font-max-advance-width
(xft-font)
"scx_xftfont_max_advance_width_get")