(define-foreign-variable sizeof-cairo-text-extents int "sizeof(cairo_text_extents_t)") (define-record cairo-text-extents-type buffer) (let ((maker make-cairo-text-extents-type)) (set! make-cairo-text-extents-type (lambda () (maker (make-u8vector sizeof-cairo-text-extents))))) (define-record-printer (cairo-text-extents-type te out) (list "#")))) (b (cairo-text-extents-type-buffer te))) (define cairo-text-extents-x-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->x_bearing);")) (define cairo-text-extents-y-bearing (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->y_bearing);")) (define cairo-text-extents-width (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->width);")) (define cairo-text-extents-height (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->height);")) (define cairo-text-extents-x-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->x_advance);")) (define cairo-text-extents-y-advance (foreign-lambda* double ((cairo_text_extents_t te)) "return(te->y_advance);")) (define cairo-text-extents-x-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->x_bearing = v;")) (define cairo-text-extents-y-bearing-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->y_bearing = v;")) (define cairo-text-extents-width-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->width = v;")) (define cairo-text-extents-height-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->height = v;")) (define cairo-text-extents-x-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->x_advance = v;")) (define cairo-text-extents-y-advance-set! (foreign-lambda* double ((cairo_text_extents_t te) (double v)) "te->y_advance = v;")) (define cairo-text-extents (foreign-lambda void "cairo_text_extents" cairo_t c-string cairo_text_extents_t))