;; -*- scheme -*-
;; From /opt/gnome-devel/include/pango-1.0/pango/pangocairo.h

(define-interface CairoFontMap
  (in-module "Pango")
  (c-name "PangoCairoFontMap")
  (gtype-id "PANGO_TYPE_CAIRO_FONT_MAP")
  (prerequisite "PangoFontMap")
)

(define-function font_map_get_type
  (c-name "pango_cairo_font_map_get_type")
  (return-type "GType")
)

(define-function cairo_font_map_new
  (c-name "pango_cairo_font_map_new")
  (return-type "PangoFontMap*")
)

(define-function cairo_font_map_get_default
  (c-name "pango_cairo_font_map_get_default")
  (return-type "PangoFontMap*")
)

(define-method set_resolution
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_set_resolution")
  (return-type "none")
  (parameters
    '("double" "dpi")
  )
)

(define-method get_resolution
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_get_resolution")
  (return-type "double")
)

(define-method create_context
  (of-object "PangoCairoFontMap")
  (c-name "pango_cairo_font_map_create_context")
  (return-type "PangoContext*")
  (caller-owns-return #t)
)

(define-function update_context
  (c-name "pango_cairo_update_context")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoContext*" "context")
  )
)

(define-function context_set_font_options
  (c-name "pango_cairo_context_set_font_options")
  (return-type "none")
  (parameters
    '("PangoContext*" "context")
    '("const-cairo_font_options_t*" "options")
  )
)

(define-function context_get_font_options
  (c-name "pango_cairo_context_get_font_options")
  (return-type "const-cairo_font_options_t*")
  (parameters
    '("PangoContext*" "context")
  )
)

(define-function context_set_resolution
  (c-name "pango_cairo_context_set_resolution")
  (return-type "none")
  (parameters
    '("PangoContext*" "context")
    '("double" "dpi")
  )
)

(define-function context_get_resolution
  (c-name "pango_cairo_context_get_resolution")
  (return-type "double")
  (parameters
    '("PangoContext*" "context")
  )
)

(define-function create_layout
  (c-name "pango_cairo_create_layout")
  (return-type "PangoLayout*")
  (caller-owns-return #t)
  (parameters
    '("cairo_t*" "cr")
  )
)

(define-function update_layout
  (c-name "pango_cairo_update_layout")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function show_glyph_string
  (c-name "pango_cairo_show_glyph_string")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function show_layout_line
  (c-name "pango_cairo_show_layout_line")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayoutLine*" "line")
  )
)

(define-function show_layout
  (c-name "pango_cairo_show_layout")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function glyph_string_path
  (c-name "pango_cairo_glyph_string_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoFont*" "font")
    '("PangoGlyphString*" "glyphs")
  )
)

(define-function layout_line_path
  (c-name "pango_cairo_layout_line_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayoutLine*" "line")
  )
)

(define-function layout_path
  (c-name "pango_cairo_layout_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("PangoLayout*" "layout")
  )
)

(define-function error_underline_path
  (c-name "pango_cairo_error_underline_path")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("double" "x")
    '("double" "y")
    '("double" "width")
    '("double" "height")
  )
)

(define-function show_error_underline
  (c-name "pango_cairo_show_error_underline")
  (return-type "none")
  (parameters
    '("cairo_t*" "cr")
    '("double" "x")
    '("double" "y")
    '("double" "width")
    '("double" "height")
  )
)
