summary refs log tree commit diff stats
path: root/lib/base/cairo/cairo.nim
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2008-11-16 22:08:15 +0100
committerAndreas Rumpf <rumpf_a@web.de>2008-11-16 22:08:15 +0100
commit8b2a9401a147bd0b26cd2976ae71a1022fbde8cc (patch)
treec1a1323003ee8148af5dc60bcf1b88157dd00eb8 /lib/base/cairo/cairo.nim
parent972c51086152bd45aef4eb17c099fa3472a19d04 (diff)
downloadNim-8b2a9401a147bd0b26cd2976ae71a1022fbde8cc.tar.gz
version 0.7.0
Diffstat (limited to 'lib/base/cairo/cairo.nim')
-rw-r--r--lib/base/cairo/cairo.nim684
1 files changed, 342 insertions, 342 deletions
diff --git a/lib/base/cairo/cairo.nim b/lib/base/cairo/cairo.nim
index d2a99f355..6da8183f3 100644
--- a/lib/base/cairo/cairo.nim
+++ b/lib/base/cairo/cairo.nim
@@ -58,7 +58,7 @@ else:
 
 type
   PByte = cstring
-  cairo_status_t* = enum
+  TCairoStatus* = enum
     CAIRO_STATUS_SUCCESS = 0, CAIRO_STATUS_NO_MEMORY,
     CAIRO_STATUS_INVALID_RESTORE, CAIRO_STATUS_INVALID_POP_GROUP,
     CAIRO_STATUS_NO_CURRENT_POINT, CAIRO_STATUS_INVALID_MATRIX,
@@ -69,93 +69,93 @@ type
     CAIRO_STATUS_PATTERN_TYPE_MISMATCH, CAIRO_STATUS_INVALID_CONTENT,
     CAIRO_STATUS_INVALID_FORMAT, CAIRO_STATUS_INVALID_VISUAL,
     CAIRO_STATUS_FILE_NOT_FOUND, CAIRO_STATUS_INVALID_DASH
-  cairo_operator_t* = enum
+  TCairoOperator* = enum
     CAIRO_OPERATOR_CLEAR, CAIRO_OPERATOR_SOURCE, CAIRO_OPERATOR_OVER,
     CAIRO_OPERATOR_IN, CAIRO_OPERATOR_OUT, CAIRO_OPERATOR_ATOP,
     CAIRO_OPERATOR_DEST, CAIRO_OPERATOR_DEST_OVER, CAIRO_OPERATOR_DEST_IN,
     CAIRO_OPERATOR_DEST_OUT, CAIRO_OPERATOR_DEST_ATOP, CAIRO_OPERATOR_XOR,
     CAIRO_OPERATOR_ADD, CAIRO_OPERATOR_SATURATE
-  cairo_antialias_t* = enum
+  TCairoAntialias* = enum
     CAIRO_ANTIALIAS_DEFAULT, CAIRO_ANTIALIAS_NONE, CAIRO_ANTIALIAS_GRAY,
     CAIRO_ANTIALIAS_SUBPIXEL
-  cairo_fill_rule_t* = enum
+  TCairoFillRule* = enum
     CAIRO_FILL_RULE_WINDING, CAIRO_FILL_RULE_EVEN_ODD
-  cairo_line_cap_t* = enum
+  TCairoLineCap* = enum
     CAIRO_LINE_CAP_BUTT, CAIRO_LINE_CAP_ROUND, CAIRO_LINE_CAP_SQUARE
-  cairo_line_join_t* = enum
+  TCairoLineJoin* = enum
     CAIRO_LINE_JOIN_MITER, CAIRO_LINE_JOIN_ROUND, CAIRO_LINE_JOIN_BEVEL
-  cairo_font_slant_t* = enum
+  TCairoFontSlant* = enum
     CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_SLANT_ITALIC, CAIRO_FONT_SLANT_OBLIQUE
-  cairo_font_weight_t* = enum
+  TCairoFontWeight* = enum
     CAIRO_FONT_WEIGHT_NORMAL, CAIRO_FONT_WEIGHT_BOLD
-  cairo_subpixel_order_t* = enum
+  TCairoSubpixelOrder* = enum
     CAIRO_SUBPIXEL_ORDER_DEFAULT, CAIRO_SUBPIXEL_ORDER_RGB,
     CAIRO_SUBPIXEL_ORDER_BGR, CAIRO_SUBPIXEL_ORDER_VRGB,
     CAIRO_SUBPIXEL_ORDER_VBGR
-  cairo_hint_style_t* = enum
+  TCairoHintStyle* = enum
     CAIRO_HINT_STYLE_DEFAULT, CAIRO_HINT_STYLE_NONE, CAIRO_HINT_STYLE_SLIGHT,
     CAIRO_HINT_STYLE_MEDIUM, CAIRO_HINT_STYLE_FULL
-  cairo_hint_metrics_t* = enum
+  TCairoHintMetrics* = enum
     CAIRO_HINT_METRICS_DEFAULT, CAIRO_HINT_METRICS_OFF, CAIRO_HINT_METRICS_ON
-  cairo_path_data_type_t* = enum
+  TCairoPathDataType* = enum
     CAIRO_PATH_MOVE_TO, CAIRO_PATH_LINE_TO, CAIRO_PATH_CURVE_TO,
     CAIRO_PATH_CLOSE_PATH
-  cairo_content_t* = enum
+  TCairoContent* = enum
     CAIRO_CONTENT_COLOR = 0x00001000, CAIRO_CONTENT_ALPHA = 0x00002000,
     CAIRO_CONTENT_COLOR_ALPHA = 0x00003000
-  cairo_format_t* = enum
+  TCairoFormat* = enum
     CAIRO_FORMAT_ARGB32, CAIRO_FORMAT_RGB24, CAIRO_FORMAT_A8, CAIRO_FORMAT_A1
-  cairo_extend_t* = enum
+  TCairoExtend* = enum
     CAIRO_EXTEND_NONE, CAIRO_EXTEND_REPEAT, CAIRO_EXTEND_REFLECT,
     CAIRO_EXTEND_PAD
-  cairo_filter_t* = enum
+  TCairoFilter* = enum
     CAIRO_FILTER_FAST, CAIRO_FILTER_GOOD, CAIRO_FILTER_BEST,
     CAIRO_FILTER_NEAREST, CAIRO_FILTER_BILINEAR, CAIRO_FILTER_GAUSSIAN
-  cairo_font_type_t* = enum
+  TCairoFontType* = enum
     CAIRO_FONT_TYPE_TOY, CAIRO_FONT_TYPE_FT, CAIRO_FONT_TYPE_WIN32,
     CAIRO_FONT_TYPE_ATSUI
-  cairo_pattern_type_t* = enum
+  TCairoPatternType* = enum
     CAIRO_PATTERN_TYPE_SOLID, CAIRO_PATTERN_TYPE_SURFACE,
     CAIRO_PATTERN_TYPE_LINEAR, CAIRO_PATTERN_TYPE_RADIAL
-  cairo_surface_type_t* = enum
+  TCairoSurfaceType* = enum
     CAIRO_SURFACE_TYPE_IMAGE, CAIRO_SURFACE_TYPE_PDF, CAIRO_SURFACE_TYPE_PS,
     CAIRO_SURFACE_TYPE_XLIB, CAIRO_SURFACE_TYPE_XCB, CAIRO_SURFACE_TYPE_GLITZ,
     CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_SURFACE_TYPE_WIN32,
     CAIRO_SURFACE_TYPE_BEOS, CAIRO_SURFACE_TYPE_DIRECTFB,
     CAIRO_SURFACE_TYPE_SVG, CAIRO_SURFACE_TYPE_OS2
-  cairo_svg_version_t* = enum
+  TCairoSvgVersion* = enum
     CAIRO_SVG_VERSION_1_1, CAIRO_SVG_VERSION_1_2
-  Pcairo_surface_t* = ref cairo_surface_t
-  PPcairo_surface_t* = ref Pcairo_surface_t
-  Pcairo_t* = ref cairo_t
-  Pcairo_pattern_t* = ref cairo_pattern_t
-  Pcairo_font_options_t* = ref cairo_font_options_t
-  Pcairo_font_face_t* = ref cairo_font_face_t
-  Pcairo_scaled_font_t* = ref cairo_scaled_font_t
-  Pcairo_bool_t* = ref cairo_bool_t
-  cairo_bool_t* = int32
-  Pcairo_matrix_t* = ref cairo_matrix_t
-  Pcairo_user_data_key_t* = ref cairo_user_data_key_t
-  Pcairo_glyph_t* = ref cairo_glyph_t
-  Pcairo_text_extents_t* = ref cairo_text_extents_t
-  Pcairo_font_extents_t* = ref cairo_font_extents_t
-  Pcairo_path_data_type_t* = ref cairo_path_data_type_t
-  Pcairo_path_data_t* = ref cairo_path_data_t
-  Pcairo_path_t* = ref cairo_path_t
-  Pcairo_rectangle_t* = ref cairo_rectangle_t
-  Pcairo_rectangle_list_t* = ref cairo_rectangle_list_t
-  cairo_destroy_func_t* = proc (data: Pointer){.cdecl.}
-  cairo_write_func_t* = proc (closure: Pointer, data: PByte, len: int32): cairo_status_t{.
+  PCairoSurface* = ptr TCairoSurface
+  PPCairoSurface* = ptr PCairoSurface
+  PCairo* = ptr TCairo
+  PCairoPattern* = ptr TCairoPattern
+  PCairoFontOptions* = ptr TCairoFontOptions
+  PCairoFontFace* = ptr TCairoFontFace
+  PCairoScaledFont* = ptr TCairoScaledFont
+  PCairoBool* = ptr TCairoBool
+  TCairoBool* = int32
+  PCairoMatrix* = ptr TCairoMatrix
+  PCairoUserDataKey* = ptr TCairoUserDataKey
+  PCairoGlyph* = ptr TCairoGlyph
+  PCairoTextExtents* = ptr TCairoTextExtents
+  PCairoFontExtents* = ptr TCairoFontExtents
+  PCairoPathDataType* = ptr TCairoPathDataType
+  PCairoPathData* = ptr TCairoPathData
+  PCairoPath* = ptr TCairoPath
+  PCairoRectangle* = ptr TCairoRectangle
+  PCairoRectangleList* = ptr TCairoRectangleList
+  TCairoDestroyFunc* = proc (data: Pointer){.cdecl.}
+  TCairoWriteFunc* = proc (closure: Pointer, data: PByte, len: int32): TCairoStatus{.
       cdecl.}
-  cairo_read_func_t* = proc (closure: Pointer, data: PByte, len: int32): cairo_status_t{.
+  TCairoReadFunc* = proc (closure: Pointer, data: PByte, len: int32): TCairoStatus{.
       cdecl.}
-  cairo_t* {.final.} = object           #OPAQUE
-  cairo_surface_t* {.final.} = object   #OPAQUE
-  cairo_pattern_t* {.final.} = object   #OPAQUE
-  cairo_scaled_font_t* {.final.} = object #OPAQUE
-  cairo_font_face_t* {.final.} = object #OPAQUE
-  cairo_font_options_t* {.final.} = object #OPAQUE
-  cairo_matrix_t* {.final.} = object
+  TCairo* {.final.} = object           #OPAQUE
+  TCairoSurface* {.final.} = object   #OPAQUE
+  TCairoPattern* {.final.} = object   #OPAQUE
+  TCairoScaledFont* {.final.} = object #OPAQUE
+  TCairoFontFace* {.final.} = object #OPAQUE
+  TCairoFontOptions* {.final.} = object #OPAQUE
+  TCairoMatrix* {.final.} = object
     xx: float64
     yx: float64
     xy: float64
@@ -163,15 +163,15 @@ type
     x0: float64
     y0: float64
 
-  cairo_user_data_key_t* {.final.} = object
+  TCairoUserDataKey* {.final.} = object
     unused: int32
 
-  cairo_glyph_t* {.final.} = object
+  TCairoGlyph* {.final.} = object
     index: int32
     x: float64
     y: float64
 
-  cairo_text_extents_t* {.final.} = object
+  TCairoTextExtents* {.final.} = object
     x_bearing: float64
     y_bearing: float64
     width: float64
@@ -179,30 +179,30 @@ type
     x_advance: float64
     y_advance: float64
 
-  cairo_font_extents_t* {.final.} = object
+  TCairoFontExtents* {.final.} = object
     ascent: float64
     descent: float64
     height: float64
     max_x_advance: float64
     max_y_advance: float64
 
-  cairo_path_data_t* {.final.} = object #* _type : cairo_path_data_type_t;
-                                        #       length : LongInt;
-                                        #    end
+  TCairoPathData* {.final.} = object #* _type : TCairoPathDataType;
+                                     #       length : LongInt;
+                                     #    end
     x: float64
     y: float64
 
-  cairo_path_t* {.final.} = object
-    status: cairo_status_t
-    data: Pcairo_path_data_t
+  TCairoPath* {.final.} = object
+    status: TCairoStatus
+    data: PCairoPathData
     num_data: int32
 
-  cairo_rectangle_t* {.final.} = object
+  TCairoRectangle* {.final.} = object
     x, y, width, height: float64
 
-  cairo_rectangle_list_t* {.final.} = object
-    status: cairo_status_t
-    rectangles: Pcairo_rectangle_t
+  TCairoRectangleList* {.final.} = object
+    status: TCairoStatus
+    rectangles: PCairoRectangle
     num_rectangles: int32
 
 
@@ -211,480 +211,480 @@ proc cairo_version_string*(): cstring{.cdecl, importc, dynlib: LIB_CAIRO.}
   #Helper function to retrieve decoded version
 proc cairo_version*(major, minor, micro: var int32)
   #* Functions for manipulating state objects
-proc cairo_create*(target: Pcairo_surface_t): Pcairo_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_reference*(cr: Pcairo_t): Pcairo_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_destroy*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_reference_count*(cr: Pcairo_t): int32{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_user_data*(cr: Pcairo_t, key: Pcairo_user_data_key_t): pointer{.
-    cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_user_data*(cr: PCairo_t, key: Pcairo_user_data_key_t,
-                          user_data: Pointer, destroy: cairo_destroy_func_t): cairo_status_t{.
-    cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_save*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_restore*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_push_group*(cr: PCairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_push_group_with_content*(cr: PCairo_t, content: cairo_content_t){.
-    cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pop_group*(cr: PCairo_t): Pcairo_pattern_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pop_group_to_source*(cr: PCairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_create*(target: PCairoSurface): PCairo{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_reference*(cr: PCairo): PCairo{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_destroy*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_reference_count*(cr: PCairo): int32{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_user_data*(cr: PCairo, key: PCairoUserDataKey): pointer{.
+    cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_set_user_data*(cr: PCairo, key: PCairoUserDataKey,
+                          user_data: Pointer, destroy: TCairoDestroyFunc): TCairoStatus{.
+    cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_save*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_restore*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_push_group*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_push_group_with_content*(cr: PCairo, content: TCairoContent){.
+    cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_pop_group*(cr: PCairo): PCairoPattern{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_pop_group_to_source*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Modify state
-proc cairo_set_operator*(cr: Pcairo_t, op: cairo_operator_t){.cdecl, importc,
+proc cairo_set_operator*(cr: PCairo, op: TCairoOperator){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_source*(cr: Pcairo_t, source: Pcairo_pattern_t){.cdecl, importc,
+proc cairo_set_source*(cr: PCairo, source: PCairoPattern){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_source_rgb*(cr: Pcairo_t, red, green, blue: float64){.cdecl, importc,
+proc cairo_set_source_rgb*(cr: PCairo, red, green, blue: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_source_rgba*(cr: Pcairo_t, red, green, blue, alpha: float64){.
+proc cairo_set_source_rgba*(cr: PCairo, red, green, blue, alpha: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_source_surface*(cr: Pcairo_t, surface: Pcairo_surface_t,
+proc cairo_set_source_surface*(cr: PCairo, surface: PCairoSurface,
                                x, y: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_tolerance*(cr: Pcairo_t, tolerance: float64){.cdecl, importc,
+proc cairo_set_tolerance*(cr: PCairo, tolerance: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_antialias*(cr: Pcairo_t, antialias: cairo_antialias_t){.cdecl, importc,
+proc cairo_set_antialias*(cr: PCairo, antialias: TCairoAntialias){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_fill_rule*(cr: Pcairo_t, fill_rule: cairo_fill_rule_t){.cdecl, importc,
+proc cairo_set_fill_rule*(cr: PCairo, fill_rule: TCairoFillRule){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_line_width*(cr: Pcairo_t, width: float64){.cdecl, importc,
+proc cairo_set_line_width*(cr: PCairo, width: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_line_cap*(cr: Pcairo_t, line_cap: cairo_line_cap_t){.cdecl, importc,
+proc cairo_set_line_cap*(cr: PCairo, line_cap: TCairoLineCap){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_line_join*(cr: Pcairo_t, line_join: cairo_line_join_t){.cdecl, importc,
+proc cairo_set_line_join*(cr: PCairo, line_join: TCairoLineJoin){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_dash*(cr: Pcairo_t, dashes: openarray[float64],
+proc cairo_set_dash*(cr: PCairo, dashes: openarray[float64],
                      offset: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_miter_limit*(cr: Pcairo_t, limit: float64){.cdecl, importc,
+proc cairo_set_miter_limit*(cr: PCairo, limit: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_translate*(cr: Pcairo_t, tx, ty: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scale*(cr: Pcairo_t, sx, sy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rotate*(cr: Pcairo_t, angle: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_transform*(cr: Pcairo_t, matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_translate*(cr: PCairo, tx, ty: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_scale*(cr: PCairo, sx, sy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_rotate*(cr: PCairo, angle: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_transform*(cr: PCairo, matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_matrix*(cr: Pcairo_t, matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_set_matrix*(cr: PCairo, matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_identity_matrix*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_user_to_device*(cr: Pcairo_t, x, y: var float64){.cdecl, importc,
+proc cairo_identity_matrix*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_user_to_device*(cr: PCairo, x, y: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_user_to_device_distance*(cr: Pcairo_t, dx, dy: var float64){.cdecl, importc,
+proc cairo_user_to_device_distance*(cr: PCairo, dx, dy: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_device_to_user*(cr: Pcairo_t, x, y: var float64){.cdecl, importc,
+proc cairo_device_to_user*(cr: PCairo, x, y: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_device_to_user_distance*(cr: Pcairo_t, dx, dy: var float64){.cdecl, importc,
+proc cairo_device_to_user_distance*(cr: PCairo, dx, dy: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Path creation functions
-proc cairo_new_path*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_move_to*(cr: Pcairo_t, x, y: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_new_sub_path*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_line_to*(cr: Pcairo_t, x, y: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_curve_to*(cr: Pcairo_t, x1, y1, x2, y2, x3, y3: float64){.cdecl, importc,
+proc cairo_new_path*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_move_to*(cr: PCairo, x, y: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_new_sub_path*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_line_to*(cr: PCairo, x, y: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_curve_to*(cr: PCairo, x1, y1, x2, y2, x3, y3: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_arc*(cr: Pcairo_t, xc, yc, radius, angle1, angle2: float64){.cdecl, importc,
+proc cairo_arc*(cr: PCairo, xc, yc, radius, angle1, angle2: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_arc_negative*(cr: Pcairo_t, xc, yc, radius, angle1, angle2: float64){.
+proc cairo_arc_negative*(cr: PCairo, xc, yc, radius, angle1, angle2: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rel_move_to*(cr: Pcairo_t, dx, dy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rel_line_to*(cr: Pcairo_t, dx, dy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rel_curve_to*(cr: Pcairo_t, dx1, dy1, dx2, dy2, dx3, dy3: float64){.
+proc cairo_rel_move_to*(cr: PCairo, dx, dy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_rel_line_to*(cr: PCairo, dx, dy: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_rel_curve_to*(cr: PCairo, dx1, dy1, dx2, dy2, dx3, dy3: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rectangle*(cr: Pcairo_t, x, y, width, height: float64){.cdecl, importc,
+proc cairo_rectangle*(cr: PCairo, x, y, width, height: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_close_path*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_close_path*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Painting functions
-proc cairo_paint*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_paint_with_alpha*(cr: Pcairo_t, alpha: float64){.cdecl, importc,
+proc cairo_paint*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_paint_with_alpha*(cr: PCairo, alpha: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_mask*(cr: Pcairo_t, pattern: Pcairo_pattern_t){.cdecl, importc,
+proc cairo_mask*(cr: PCairo, pattern: PCairoPattern){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_mask_surface*(cr: Pcairo_t, surface: Pcairo_surface_t,
+proc cairo_mask_surface*(cr: PCairo, surface: PCairoSurface,
                          surface_x, surface_y: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_stroke*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_stroke_preserve*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_fill*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_fill_preserve*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_copy_page*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_show_page*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_stroke*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_stroke_preserve*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_fill*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_fill_preserve*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_copy_page*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_show_page*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Insideness testing
-proc cairo_in_stroke*(cr: Pcairo_t, x, y: float64): cairo_bool_t{.cdecl, importc,
+proc cairo_in_stroke*(cr: PCairo, x, y: float64): TCairoBool{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_in_fill*(cr: Pcairo_t, x, y: float64): cairo_bool_t{.cdecl, importc,
+proc cairo_in_fill*(cr: PCairo, x, y: float64): TCairoBool{.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Rectangular extents
-proc cairo_stroke_extents*(cr: Pcairo_t, x1, y1, x2, y2: var float64){.cdecl, importc,
+proc cairo_stroke_extents*(cr: PCairo, x1, y1, x2, y2: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_fill_extents*(cr: Pcairo_t, x1, y1, x2, y2: var float64){.cdecl, importc,
+proc cairo_fill_extents*(cr: PCairo, x1, y1, x2, y2: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Clipping
-proc cairo_reset_clip*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_clip*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_clip_preserve*(cr: Pcairo_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_clip_extents*(cr: Pcairo_t, x1, y1, x2, y2: var float64){.cdecl, importc,
+proc cairo_reset_clip*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_clip*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_clip_preserve*(cr: PCairo){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_clip_extents*(cr: PCairo, x1, y1, x2, y2: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_copy_clip_rectangle_list*(cr: Pcairo_t): Pcairo_rectangle_list_t{.
+proc cairo_copy_clip_rectangle_list*(cr: PCairo): PCairoRectangleList{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_rectangle_list_destroy*(rectangle_list: Pcairo_rectangle_list_t){.
+proc cairo_rectangle_list_destroy*(rectangle_list: PCairoRectangleList){.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* Font/Text functions
-proc cairo_font_options_create*(): Pcairo_font_options_t{.cdecl, importc,
+proc cairo_font_options_create*(): PCairoFontOptions{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_copy*(original: Pcairo_font_options_t): Pcairo_font_options_t{.
+proc cairo_font_options_copy*(original: PCairoFontOptions): PCairoFontOptions{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_destroy*(options: Pcairo_font_options_t){.cdecl, importc,
+proc cairo_font_options_destroy*(options: PCairoFontOptions){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_status*(options: Pcairo_font_options_t): cairo_status_t{.
+proc cairo_font_options_status*(options: PCairoFontOptions): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_merge*(options, other: Pcairo_font_options_t){.cdecl, importc,
+proc cairo_font_options_merge*(options, other: PCairoFontOptions){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_equal*(options, other: Pcairo_font_options_t): cairo_bool_t{.
+proc cairo_font_options_equal*(options, other: PCairoFontOptions): TCairoBool{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_hash*(options: Pcairo_font_options_t): int32{.cdecl, importc,
+proc cairo_font_options_hash*(options: PCairoFontOptions): int32{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_set_antialias*(options: Pcairo_font_options_t,
-                                       antialias: cairo_antialias_t){.cdecl, importc,
+proc cairo_font_options_set_antialias*(options: PCairoFontOptions,
+                                       antialias: TCairoAntialias){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_get_antialias*(options: Pcairo_font_options_t): cairo_antialias_t{.
+proc cairo_font_options_get_antialias*(options: PCairoFontOptions): TCairoAntialias{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_set_subpixel_order*(options: Pcairo_font_options_t,
-    subpixel_order: cairo_subpixel_order_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_get_subpixel_order*(options: Pcairo_font_options_t): cairo_subpixel_order_t{.
+proc cairo_font_options_set_subpixel_order*(options: PCairoFontOptions,
+    subpixel_order: TCairoSubpixelOrder){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_font_options_get_subpixel_order*(options: PCairoFontOptions): TCairoSubpixelOrder{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_set_hint_style*(options: Pcairo_font_options_t,
-                                        hint_style: cairo_hint_style_t){.cdecl, importc,
+proc cairo_font_options_set_hint_style*(options: PCairoFontOptions,
+                                        hint_style: TCairoHintStyle){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_options_get_hint_style*(options: Pcairo_font_options_t): cairo_hint_style_t{.
+proc cairo_font_options_get_hint_style*(options: PCairoFontOptions): TCairoHintStyle{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_set_hint_metrics*(options: Pcairo_font_options_t,
-    hint_metrics: cairo_hint_metrics_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_options_get_hint_metrics*(options: Pcairo_font_options_t): cairo_hint_metrics_t{.
+proc cairo_font_options_set_hint_metrics*(options: PCairoFontOptions,
+    hint_metrics: TCairoHintMetrics){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_font_options_get_hint_metrics*(options: PCairoFontOptions): TCairoHintMetrics{.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* This interface is for dealing with text as text, not caring about the
-  #   font object inside the the cairo_t.
-proc cairo_select_font_face*(cr: Pcairo_t, family: cstring,
-                             slant: cairo_font_slant_t,
-                             weight: cairo_font_weight_t){.cdecl, importc,
+  #   font object inside the the TCairo.
+proc cairo_select_font_face*(cr: PCairo, family: cstring,
+                             slant: TCairoFontSlant,
+                             weight: TCairoFontWeight){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_font_size*(cr: Pcairo_t, size: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_font_matrix*(cr: Pcairo_t, matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_set_font_size*(cr: PCairo, size: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_set_font_matrix*(cr: PCairo, matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_font_matrix*(cr: Pcairo_t, matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_get_font_matrix*(cr: PCairo, matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_font_options*(cr: Pcairo_t, options: Pcairo_font_options_t){.
+proc cairo_set_font_options*(cr: PCairo, options: PCairoFontOptions){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_font_options*(cr: Pcairo_t, options: Pcairo_font_options_t){.
+proc cairo_get_font_options*(cr: PCairo, options: PCairoFontOptions){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_set_font_face*(cr: Pcairo_t, font_face: Pcairo_font_face_t){.cdecl, importc,
+proc cairo_set_font_face*(cr: PCairo, font_face: PCairoFontFace){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_font_face*(cr: Pcairo_t): Pcairo_font_face_t{.cdecl, importc,
+proc cairo_get_font_face*(cr: PCairo): PCairoFontFace{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_set_scaled_font*(cr: PCairo_t, scaled_font: Pcairo_scaled_font_t){.
+proc cairo_set_scaled_font*(cr: PCairo, scaled_font: PCairoScaledFont){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_scaled_font*(cr: Pcairo_t): Pcairo_scaled_font_t{.cdecl, importc,
+proc cairo_get_scaled_font*(cr: PCairo): PCairoScaledFont{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_show_text*(cr: Pcairo_t, utf8: cstring){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_show_glyphs*(cr: Pcairo_t, glyphs: Pcairo_glyph_t, num_glyphs: int32){.
+proc cairo_show_text*(cr: PCairo, utf8: cstring){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_show_glyphs*(cr: PCairo, glyphs: PCairoGlyph, num_glyphs: int32){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_text_path*(cr: Pcairo_t, utf8: cstring){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_glyph_path*(cr: Pcairo_t, glyphs: Pcairo_glyph_t, num_glyphs: int32){.
+proc cairo_text_path*(cr: PCairo, utf8: cstring){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_glyph_path*(cr: PCairo, glyphs: PCairoGlyph, num_glyphs: int32){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_text_extents*(cr: Pcairo_t, utf8: cstring,
-                         extents: Pcairo_text_extents_t){.cdecl, importc,
+proc cairo_text_extents*(cr: PCairo, utf8: cstring,
+                         extents: PCairoTextExtents){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_glyph_extents*(cr: Pcairo_t, glyphs: Pcairo_glyph_t,
-                          num_glyphs: int32, extents: Pcairo_text_extents_t){.
+proc cairo_glyph_extents*(cr: PCairo, glyphs: PCairoGlyph,
+                          num_glyphs: int32, extents: PCairoTextExtents){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_extents*(cr: Pcairo_t, extents: Pcairo_font_extents_t){.cdecl, importc,
+proc cairo_font_extents*(cr: PCairo, extents: PCairoFontExtents){.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Generic identifier for a font style
-proc cairo_font_face_reference*(font_face: Pcairo_font_face_t): Pcairo_font_face_t{.
+proc cairo_font_face_reference*(font_face: PCairoFontFace): PCairoFontFace{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_face_destroy*(font_face: Pcairo_font_face_t){.cdecl, importc,
+proc cairo_font_face_destroy*(font_face: PCairoFontFace){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_font_face_get_reference_count*(font_face: Pcairo_font_face_t): int32{.
+proc cairo_font_face_get_reference_count*(font_face: PCairoFontFace): int32{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_face_status*(font_face: Pcairo_font_face_t): cairo_status_t{.
+proc cairo_font_face_status*(font_face: PCairoFontFace): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_face_get_type*(font_face: Pcairo_font_face_t): cairo_font_type_t{.
+proc cairo_font_face_get_type*(font_face: PCairoFontFace): TCairoFontType{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_face_get_user_data*(font_face: Pcairo_font_face_t,
-                                    key: Pcairo_user_data_key_t): pointer{.
+proc cairo_font_face_get_user_data*(font_face: PCairoFontFace,
+                                    key: PCairoUserDataKey): pointer{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_font_face_set_user_data*(font_face: Pcairo_font_face_t,
-                                    key: Pcairo_user_data_key_t,
+proc cairo_font_face_set_user_data*(font_face: PCairoFontFace,
+                                    key: PCairoUserDataKey,
                                     user_data: pointer,
-                                    destroy: cairo_destroy_func_t): cairo_status_t{.
+                                    destroy: TCairoDestroyFunc): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* Portable interface to general font features
-proc cairo_scaled_font_create*(font_face: Pcairo_font_face_t,
-                               font_matrix: Pcairo_matrix_t,
-                               ctm: Pcairo_matrix_t,
-                               options: Pcairo_font_options_t): Pcairo_scaled_font_t{.
+proc cairo_scaled_font_create*(font_face: PCairoFontFace,
+                               font_matrix: PCairoMatrix,
+                               ctm: PCairoMatrix,
+                               options: PCairoFontOptions): PCairoScaledFont{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_reference*(scaled_font: Pcairo_scaled_font_t): Pcairo_scaled_font_t{.
+proc cairo_scaled_font_reference*(scaled_font: PCairoScaledFont): PCairoScaledFont{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_destroy*(scaled_font: Pcairo_scaled_font_t){.cdecl, importc,
+proc cairo_scaled_font_destroy*(scaled_font: PCairoScaledFont){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_reference_count*(scaled_font: Pcairo_scaled_font_t): int32{.
+proc cairo_scaled_font_get_reference_count*(scaled_font: PCairoScaledFont): int32{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_status*(scaled_font: Pcairo_scaled_font_t): cairo_status_t{.
+proc cairo_scaled_font_status*(scaled_font: PCairoScaledFont): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_type*(scaled_font: Pcairo_scaled_font_t): cairo_font_type_t{.
+proc cairo_scaled_font_get_type*(scaled_font: PCairoScaledFont): TCairoFontType{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_user_data*(scaled_font: Pcairo_scaled_font_t,
-                                      key: Pcairo_user_data_key_t): Pointer{.
+proc cairo_scaled_font_get_user_data*(scaled_font: PCairoScaledFont,
+                                      key: PCairoUserDataKey): Pointer{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_set_user_data*(scaled_font: Pcairo_scaled_font_t,
-                                      key: Pcairo_user_data_key_t,
+proc cairo_scaled_font_set_user_data*(scaled_font: PCairoScaledFont,
+                                      key: PCairoUserDataKey,
                                       user_data: Pointer,
-                                      destroy: cairo_destroy_func_t): cairo_status_t{.
+                                      destroy: TCairoDestroyFunc): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_extents*(scaled_font: Pcairo_scaled_font_t,
-                                extents: Pcairo_font_extents_t){.cdecl, importc,
+proc cairo_scaled_font_extents*(scaled_font: PCairoScaledFont,
+                                extents: PCairoFontExtents){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_text_extents*(scaled_font: Pcairo_scaled_font_t,
+proc cairo_scaled_font_text_extents*(scaled_font: PCairoScaledFont,
                                      utf8: cstring,
-                                     extents: Pcairo_text_extents_t){.cdecl, importc,
+                                     extents: PCairoTextExtents){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_glyph_extents*(scaled_font: Pcairo_scaled_font_t,
-                                      glyphs: Pcairo_glyph_t, num_glyphs: int32,
-                                      extents: Pcairo_text_extents_t){.cdecl, importc,
+proc cairo_scaled_font_glyph_extents*(scaled_font: PCairoScaledFont,
+                                      glyphs: PCairoGlyph, num_glyphs: int32,
+                                      extents: PCairoTextExtents){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_font_face*(scaled_font: Pcairo_scaled_font_t): Pcairo_font_face_t{.
+proc cairo_scaled_font_get_font_face*(scaled_font: PCairoScaledFont): PCairoFontFace{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_font_matrix*(scaled_font: Pcairo_scaled_font_t,
-                                        font_matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_scaled_font_get_font_matrix*(scaled_font: PCairoScaledFont,
+                                        font_matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_ctm*(scaled_font: Pcairo_scaled_font_t,
-                                ctm: Pcairo_matrix_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_scaled_font_get_font_options*(scaled_font: Pcairo_scaled_font_t,
-    options: Pcairo_font_options_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_scaled_font_get_ctm*(scaled_font: PCairoScaledFont,
+                                ctm: PCairoMatrix){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_scaled_font_get_font_options*(scaled_font: PCairoScaledFont,
+    options: PCairoFontOptions){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Query functions
-proc cairo_get_operator*(cr: Pcairo_t): cairo_operator_t{.cdecl, importc,
+proc cairo_get_operator*(cr: PCairo): TCairoOperator{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_source*(cr: Pcairo_t): Pcairo_pattern_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_tolerance*(cr: Pcairo_t): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_antialias*(cr: Pcairo_t): cairo_antialias_t{.cdecl, importc,
+proc cairo_get_source*(cr: PCairo): PCairoPattern{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_tolerance*(cr: PCairo): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_antialias*(cr: PCairo): TCairoAntialias{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_current_point*(cr: Pcairo_t, x, y: var float64){.cdecl, importc,
+proc cairo_get_current_point*(cr: PCairo, x, y: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_fill_rule*(cr: Pcairo_t): cairo_fill_rule_t{.cdecl, importc,
+proc cairo_get_fill_rule*(cr: PCairo): TCairoFillRule{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_line_width*(cr: Pcairo_t): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_line_cap*(cr: Pcairo_t): cairo_line_cap_t{.cdecl, importc,
+proc cairo_get_line_width*(cr: PCairo): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_line_cap*(cr: PCairo): TCairoLineCap{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_line_join*(cr: Pcairo_t): cairo_line_join_t{.cdecl, importc,
+proc cairo_get_line_join*(cr: PCairo): TCairoLineJoin{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_miter_limit*(cr: Pcairo_t): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_dash_count*(cr: Pcairo_t): int32{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_dash*(cr: Pcairo_t, dashes, offset: var float64){.cdecl, importc,
+proc cairo_get_miter_limit*(cr: PCairo): float64{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_dash_count*(cr: PCairo): int32{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_dash*(cr: PCairo, dashes, offset: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_matrix*(cr: Pcairo_t, matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_get_matrix*(cr: PCairo, matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_get_target*(cr: Pcairo_t): Pcairo_surface_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_get_group_target*(cr: Pcairo_t): Pcairo_surface_t{.cdecl, importc,
+proc cairo_get_target*(cr: PCairo): PCairoSurface{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_get_group_target*(cr: PCairo): PCairoSurface{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_copy_path*(cr: Pcairo_t): Pcairo_path_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_copy_path_flat*(cr: Pcairo_t): Pcairo_path_t{.cdecl, importc,
+proc cairo_copy_path*(cr: PCairo): PCairoPath{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_copy_path_flat*(cr: PCairo): PCairoPath{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_append_path*(cr: Pcairo_t, path: Pcairo_path_t){.cdecl, importc,
+proc cairo_append_path*(cr: PCairo, path: PCairoPath){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_path_destroy*(path: Pcairo_path_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_path_destroy*(path: PCairoPath){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Error status queries
-proc cairo_status*(cr: Pcairo_t): cairo_status_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_status_to_string*(status: cairo_status_t): cstring{.cdecl, importc,
+proc cairo_status*(cr: PCairo): TCairoStatus{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_status_to_string*(status: TCairoStatus): cstring{.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Surface manipulation
-proc cairo_surface_create_similar*(other: Pcairo_surface_t,
-                                   content: cairo_content_t,
-                                   width, height: int32): Pcairo_surface_t{.
+proc cairo_surface_create_similar*(other: PCairoSurface,
+                                   content: TCairoContent,
+                                   width, height: int32): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_reference*(surface: Pcairo_surface_t): Pcairo_surface_t{.
+proc cairo_surface_reference*(surface: PCairoSurface): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_finish*(surface: Pcairo_surface_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_destroy*(surface: Pcairo_surface_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_get_reference_count*(surface: Pcairo_surface_t): int32{.
+proc cairo_surface_finish*(surface: PCairoSurface){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_surface_destroy*(surface: PCairoSurface){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_surface_get_reference_count*(surface: PCairoSurface): int32{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_status*(surface: Pcairo_surface_t): cairo_status_t{.cdecl, importc,
+proc cairo_surface_status*(surface: PCairoSurface): TCairoStatus{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_get_type*(surface: Pcairo_surface_t): cairo_surface_type_t{.
+proc cairo_surface_get_type*(surface: PCairoSurface): TCairoSurfaceType{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_get_content*(surface: Pcairo_surface_t): cairo_content_t{.
+proc cairo_surface_get_content*(surface: PCairoSurface): TCairoContent{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_write_to_png*(surface: Pcairo_surface_t, filename: cstring): cairo_status_t{.
+proc cairo_surface_write_to_png*(surface: PCairoSurface, filename: cstring): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_write_to_png_stream*(surface: Pcairo_surface_t,
-                                        write_func: cairo_write_func_t,
-                                        closure: pointer): cairo_status_t{.
+proc cairo_surface_write_to_png_stream*(surface: PCairoSurface,
+                                        write_func: TCairoWriteFunc,
+                                        closure: pointer): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_get_user_data*(surface: Pcairo_surface_t,
-                                  key: Pcairo_user_data_key_t): pointer{.cdecl, importc,
+proc cairo_surface_get_user_data*(surface: PCairoSurface,
+                                  key: PCairoUserDataKey): pointer{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_set_user_data*(surface: Pcairo_surface_t,
-                                  key: Pcairo_user_data_key_t,
+proc cairo_surface_set_user_data*(surface: PCairoSurface,
+                                  key: PCairoUserDataKey,
                                   user_data: pointer,
-                                  destroy: cairo_destroy_func_t): cairo_status_t{.
+                                  destroy: TCairoDestroyFunc): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_get_font_options*(surface: Pcairo_surface_t,
-                                     options: Pcairo_font_options_t){.cdecl, importc,
+proc cairo_surface_get_font_options*(surface: PCairoSurface,
+                                     options: PCairoFontOptions){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_flush*(surface: Pcairo_surface_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_mark_dirty*(surface: Pcairo_surface_t){.cdecl, importc,
+proc cairo_surface_flush*(surface: PCairoSurface){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_surface_mark_dirty*(surface: PCairoSurface){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_mark_dirty_rectangle*(surface: Pcairo_surface_t,
+proc cairo_surface_mark_dirty_rectangle*(surface: PCairoSurface,
     x, y, width, height: int32){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_surface_set_device_offset*(surface: Pcairo_surface_t,
+proc cairo_surface_set_device_offset*(surface: PCairoSurface,
                                       x_offset, y_offset: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_get_device_offset*(surface: Pcairo_surface_t,
+proc cairo_surface_get_device_offset*(surface: PCairoSurface,
                                       x_offset, y_offset: var float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_surface_set_fallback_resolution*(surface: Pcairo_surface_t,
+proc cairo_surface_set_fallback_resolution*(surface: PCairoSurface,
     x_pixels_per_inch, y_pixels_per_inch: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Image-surface functions
-proc cairo_image_surface_create*(format: cairo_format_t, width, height: int32): Pcairo_surface_t{.
+proc cairo_image_surface_create*(format: TCairoFormat, width, height: int32): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_image_surface_create_for_data*(data: Pbyte, format: cairo_format_t,
-    width, height, stride: int32): Pcairo_surface_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_image_surface_get_data*(surface: Pcairo_surface_t): cstring{.cdecl, importc,
+proc cairo_image_surface_create_for_data*(data: Pbyte, format: TCairoFormat,
+    width, height, stride: int32): PCairoSurface{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_image_surface_get_data*(surface: PCairoSurface): cstring{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_image_surface_get_format*(surface: Pcairo_surface_t): cairo_format_t{.
+proc cairo_image_surface_get_format*(surface: PCairoSurface): TCairoFormat{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_image_surface_get_width*(surface: Pcairo_surface_t): int32{.cdecl, importc,
+proc cairo_image_surface_get_width*(surface: PCairoSurface): int32{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_image_surface_get_height*(surface: Pcairo_surface_t): int32{.cdecl, importc,
+proc cairo_image_surface_get_height*(surface: PCairoSurface): int32{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_image_surface_get_stride*(surface: Pcairo_surface_t): int32{.cdecl, importc,
+proc cairo_image_surface_get_stride*(surface: PCairoSurface): int32{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_image_surface_create_from_png*(filename: cstring): Pcairo_surface_t{.
+proc cairo_image_surface_create_from_png*(filename: cstring): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_image_surface_create_from_png_stream*(read_func: cairo_read_func_t,
-    closure: pointer): Pcairo_surface_t{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_image_surface_create_from_png_stream*(read_func: TCairoReadFunc,
+    closure: pointer): PCairoSurface{.cdecl, importc, dynlib: LIB_CAIRO.}
   #* Pattern creation functions
-proc cairo_pattern_create_rgb*(red, green, blue: float64): Pcairo_pattern_t{.
+proc cairo_pattern_create_rgb*(red, green, blue: float64): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_create_rgba*(red, green, blue, alpha: float64): Pcairo_pattern_t{.
+proc cairo_pattern_create_rgba*(red, green, blue, alpha: float64): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_create_for_surface*(surface: Pcairo_surface_t): Pcairo_pattern_t{.
+proc cairo_pattern_create_for_surface*(surface: PCairoSurface): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_create_linear*(x0, y0, x1, y1: float64): Pcairo_pattern_t{.
+proc cairo_pattern_create_linear*(x0, y0, x1, y1: float64): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_create_radial*(cx0, cy0, radius0, cx1, cy1, radius1: float64): Pcairo_pattern_t{.
+proc cairo_pattern_create_radial*(cx0, cy0, radius0, cx1, cy1, radius1: float64): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_reference*(pattern: Pcairo_pattern_t): Pcairo_pattern_t{.
+proc cairo_pattern_reference*(pattern: PCairoPattern): PCairoPattern{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_destroy*(pattern: Pcairo_pattern_t){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_reference_count*(pattern: Pcairo_pattern_t): int32{.
+proc cairo_pattern_destroy*(pattern: PCairoPattern){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_pattern_get_reference_count*(pattern: PCairoPattern): int32{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_status*(pattern: Pcairo_pattern_t): cairo_status_t{.cdecl, importc,
+proc cairo_pattern_status*(pattern: PCairoPattern): TCairoStatus{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_user_data*(pattern: Pcairo_pattern_t,
-                                  key: Pcairo_user_data_key_t): Pointer{.cdecl, importc,
+proc cairo_pattern_get_user_data*(pattern: PCairoPattern,
+                                  key: PCairoUserDataKey): Pointer{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_pattern_set_user_data*(pattern: Pcairo_pattern_t,
-                                  key: Pcairo_user_data_key_t,
+proc cairo_pattern_set_user_data*(pattern: PCairoPattern,
+                                  key: PCairoUserDataKey,
                                   user_data: Pointer,
-                                  destroy: cairo_destroy_func_t): cairo_status_t{.
+                                  destroy: TCairoDestroyFunc): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_type*(pattern: Pcairo_pattern_t): cairo_pattern_type_t{.
+proc cairo_pattern_get_type*(pattern: PCairoPattern): TCairoPatternType{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_add_color_stop_rgb*(pattern: Pcairo_pattern_t,
+proc cairo_pattern_add_color_stop_rgb*(pattern: PCairoPattern,
                                        offset, red, green, blue: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_add_color_stop_rgba*(pattern: Pcairo_pattern_t, offset, red,
+proc cairo_pattern_add_color_stop_rgba*(pattern: PCairoPattern, offset, red,
     green, blue, alpha: float64){.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_set_matrix*(pattern: Pcairo_pattern_t,
-                               matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_pattern_set_matrix*(pattern: PCairoPattern,
+                               matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_matrix*(pattern: Pcairo_pattern_t,
-                               matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_pattern_get_matrix*(pattern: PCairoPattern,
+                               matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_pattern_set_extend*(pattern: Pcairo_pattern_t, extend: cairo_extend_t){.
+proc cairo_pattern_set_extend*(pattern: PCairoPattern, extend: TCairoExtend){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_extend*(pattern: Pcairo_pattern_t): cairo_extend_t{.
+proc cairo_pattern_get_extend*(pattern: PCairoPattern): TCairoExtend{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_set_filter*(pattern: Pcairo_pattern_t, filter: cairo_filter_t){.
+proc cairo_pattern_set_filter*(pattern: PCairoPattern, filter: TCairoFilter){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_filter*(pattern: Pcairo_pattern_t): cairo_filter_t{.
+proc cairo_pattern_get_filter*(pattern: PCairoPattern): TCairoFilter{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_rgba*(pattern: Pcairo_pattern_t,
-                             red, green, blue, alpha: var float64): cairo_status_t{.
+proc cairo_pattern_get_rgba*(pattern: PCairoPattern,
+                             red, green, blue, alpha: var float64): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_surface*(pattern: Pcairo_pattern_t,
-                                surface: PPcairo_surface_t): cairo_status_t{.
+proc cairo_pattern_get_surface*(pattern: PCairoPattern,
+                                surface: PPCairoSurface): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_color_stop_rgba*(pattern: Pcairo_pattern_t, index: int32,
-    offset, red, green, blue, alpha: var float64): cairo_status_t{.cdecl, importc,
+proc cairo_pattern_get_color_stop_rgba*(pattern: PCairoPattern, index: int32,
+    offset, red, green, blue, alpha: var float64): TCairoStatus{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_color_stop_count*(pattern: Pcairo_pattern_t,
-    count: var int32): cairo_status_t{.cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_linear_points*(pattern: Pcairo_pattern_t,
-                                      x0, y0, x1, y1: var float64): cairo_status_t{.
+proc cairo_pattern_get_color_stop_count*(pattern: PCairoPattern,
+    count: var int32): TCairoStatus{.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_pattern_get_linear_points*(pattern: PCairoPattern,
+                                      x0, y0, x1, y1: var float64): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pattern_get_radial_circles*(pattern: Pcairo_pattern_t,
-                                       x0, y0, r0, x1, y1, r1: var float64): cairo_status_t{.
+proc cairo_pattern_get_radial_circles*(pattern: PCairoPattern,
+                                       x0, y0, r0, x1, y1, r1: var float64): TCairoStatus{.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* Matrix functions
-proc cairo_matrix_init*(matrix: Pcairo_matrix_t, xx, yx, xy, yy, x0, y0: float64){.
+proc cairo_matrix_init*(matrix: PCairoMatrix, xx, yx, xy, yy, x0, y0: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_matrix_init_identity*(matrix: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_matrix_init_identity*(matrix: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_init_translate*(matrix: Pcairo_matrix_t, tx, ty: float64){.
+proc cairo_matrix_init_translate*(matrix: PCairoMatrix, tx, ty: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_matrix_init_scale*(matrix: Pcairo_matrix_t, sx, sy: float64){.cdecl, importc,
+proc cairo_matrix_init_scale*(matrix: PCairoMatrix, sx, sy: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_init_rotate*(matrix: Pcairo_matrix_t, radians: float64){.
+proc cairo_matrix_init_rotate*(matrix: PCairoMatrix, radians: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_matrix_translate*(matrix: Pcairo_matrix_t, tx, ty: float64){.cdecl, importc,
+proc cairo_matrix_translate*(matrix: PCairoMatrix, tx, ty: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_scale*(matrix: Pcairo_matrix_t, sx, sy: float64){.cdecl, importc,
+proc cairo_matrix_scale*(matrix: PCairoMatrix, sx, sy: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_rotate*(matrix: Pcairo_matrix_t, radians: float64){.cdecl, importc,
+proc cairo_matrix_rotate*(matrix: PCairoMatrix, radians: float64){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_invert*(matrix: Pcairo_matrix_t): cairo_status_t{.cdecl, importc,
+proc cairo_matrix_invert*(matrix: PCairoMatrix): TCairoStatus{.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_multiply*(result, a, b: Pcairo_matrix_t){.cdecl, importc,
+proc cairo_matrix_multiply*(result, a, b: PCairoMatrix){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_matrix_transform_distance*(matrix: Pcairo_matrix_t, dx, dy: var float64){.
+proc cairo_matrix_transform_distance*(matrix: PCairoMatrix, dx, dy: var float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_matrix_transform_point*(matrix: Pcairo_matrix_t, x, y: var float64){.
+proc cairo_matrix_transform_point*(matrix: PCairoMatrix, x, y: var float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* PDF functions
 proc cairo_pdf_surface_create*(filename: cstring,
-                               width_in_points, height_in_points: float64): Pcairo_surface_t{.
+                               width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pdf_surface_create_for_stream*(write_func: cairo_write_func_t,
-    closure: Pointer, width_in_points, height_in_points: float64): Pcairo_surface_t{.
+proc cairo_pdf_surface_create_for_stream*(write_func: TCairoWriteFunc,
+    closure: Pointer, width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_pdf_surface_set_size*(surface: Pcairo_surface_t,
+proc cairo_pdf_surface_set_size*(surface: PCairoSurface,
                                  width_in_points, height_in_points: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
   #* PS functions
 proc cairo_ps_surface_create*(filename: cstring,
-                              width_in_points, height_in_points: float64): Pcairo_surface_t{.
+                              width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_ps_surface_create_for_stream*(write_func: cairo_write_func_t,
-    closure: Pointer, width_in_points, height_in_points: float64): Pcairo_surface_t{.
+proc cairo_ps_surface_create_for_stream*(write_func: TCairoWriteFunc,
+    closure: Pointer, width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_ps_surface_set_size*(surface: Pcairo_surface_t,
+proc cairo_ps_surface_set_size*(surface: PCairoSurface,
                                 width_in_points, height_in_points: float64){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_ps_surface_dsc_comment*(surface: Pcairo_surface_t, comment: cstring){.
+proc cairo_ps_surface_dsc_comment*(surface: PCairoSurface, comment: cstring){.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_ps_surface_dsc_begin_setup*(surface: Pcairo_surface_t){.cdecl, importc,
+proc cairo_ps_surface_dsc_begin_setup*(surface: PCairoSurface){.cdecl, importc,
     dynlib: LIB_CAIRO.}
-proc cairo_ps_surface_dsc_begin_page_setup*(surface: Pcairo_surface_t){.cdecl, importc,
+proc cairo_ps_surface_dsc_begin_page_setup*(surface: PCairoSurface){.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* SVG functions
 proc cairo_svg_surface_create*(filename: cstring,
-                               width_in_points, height_in_points: float64): Pcairo_surface_t{.
+                               width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_svg_surface_create_for_stream*(write_func: cairo_write_func_t,
-    closure: Pointer, width_in_points, height_in_points: float64): Pcairo_surface_t{.
+proc cairo_svg_surface_create_for_stream*(write_func: TCairoWriteFunc,
+    closure: Pointer, width_in_points, height_in_points: float64): PCairoSurface{.
     cdecl, importc, dynlib: LIB_CAIRO.}
-proc cairo_svg_surface_restrict_to_version*(surface: Pcairo_surface_t,
-    version: cairo_svg_version_t){.cdecl, importc, dynlib: LIB_CAIRO.}
+proc cairo_svg_surface_restrict_to_version*(surface: PCairoSurface,
+    version: TCairoSvgVersion){.cdecl, importc, dynlib: LIB_CAIRO.}
   #todo: see how translate this
-  #procedure cairo_svg_get_versions(cairo_svg_version_t const	**versions,
+  #procedure cairo_svg_get_versions(TCairoSvgVersion const	**versions,
   #                        int                      	 *num_versions);
-proc cairo_svg_version_to_string*(version: cairo_svg_version_t): cstring{.cdecl, importc,
+proc cairo_svg_version_to_string*(version: TCairoSvgVersion): cstring{.cdecl, importc,
     dynlib: LIB_CAIRO.}
   #* Functions to be used while debugging (not intended for use in production code)
 proc cairo_debug_reset_static_data*(){.cdecl, importc, dynlib: LIB_CAIRO.}
@@ -693,6 +693,6 @@ proc cairo_debug_reset_static_data*(){.cdecl, importc, dynlib: LIB_CAIRO.}
 proc cairo_version(major, minor, micro: var int32) =
   var version: int32
   version = cairo_version()
-  major = version div 10000
-  minor = (version mod (major * 10000)) div 100
-  micro = (version mod ((major * 10000) + (minor * 100)))
+  major = version div 10000'i32
+  minor = (version mod (major * 10000'i32)) div 100'i32
+  micro = (version mod ((major * 10000'i32) + (minor * 100'i32)))