(in-package :cl-cairo2) (defmacro exporting-table (name definition) `(progn (defparameter ,name ,definition) (export ',name) (dolist (i ,name) ; (export (car i)) (export (cdr i))))) (exporting-table table-format '((:CAIRO_FORMAT_ARGB32 . format-argb32) (:CAIRO_FORMAT_RGB24 . format-rgb24) (:CAIRO_FORMAT_A8 . format-a8) (:CAIRO_FORMAT_A1 . format-a1))) (exporting-table table-antialias '((:CAIRO_ANTIALIAS_DEFAULT . antialias-default) (:CAIRO_ANTIALIAS_NONE . antialias-none) (:CAIRO_ANTIALIAS_GRAY . antialias-gray) (:CAIRO_ANTIALIAS_SUBPIXEL . antialias-subpixel))) (exporting-table table-fill-rule '((:CAIRO_FILL_RULE_WINDING . fill-rule-winding) (:CAIRO_FILL_RULE_EVEN_ODD . fill-rule-odd))) (exporting-table table-line-cap '((:CAIRO_LINE_CAP_BUTT . line-cap-butt) (:CAIRO_LINE_CAP_ROUND . line-cap-round) (:CAIRO_LINE_CAP_SQUARE . line-cap-square))) (exporting-table table-line-join '((:CAIRO_LINE_JOIN_MITER . line-join-miter) (:CAIRO_LINE_JOIN_ROUND . line-join-round) (:CAIRO_LINE_JOIN_BEVEL . line-join-bevel))) (exporting-table table-operator '((:CAIRO_OPERATOR_CLEAR . operator-clear) (:CAIRO_OPERATOR_SOURCE . operator-source) (:CAIRO_OPERATOR_OVER . operator-over) (:CAIRO_OPERATOR_IN . operator-in) (:CAIRO_OPERATOR_OUT . operator-out) (:CAIRO_OPERATOR_ATOP . operator-atop) (:CAIRO_OPERATOR_DEST . operator-dest) (:CAIRO_OPERATOR_DEST_OVER . operator-dest-over) (:CAIRO_OPERATOR_DEST_IN . operator-dest-in) (:CAIRO_OPERATOR_DEST_OUT . operator-dest-out) (:CAIRO_OPERATOR_DEST_ATOP . operator-dest-atop) (:CAIRO_OPERATOR_XOR . operator-xor) (:CAIRO_OPERATOR_ADD . operator-add) (:CAIRO_OPERATOR_SATURATE . operator-saturate))) (exporting-table table-font-slant '((:CAIRO_FONT_SLANT_NORMAL . font-slant-normal) (:CAIRO_FONT_SLANT_ITALIC . font-slant-italic) (:CAIRO_FONT_SLANT_OBLIQUE . font-slant-oblique))) (exporting-table table-font-weight '((:CAIRO_FONT_WEIGHT_NORMAL . font-weight-normal) (:CAIRO_FONT_WEIGHT_BOLD . font-weight-bold))) (exporting-table table-subpixel-order '((:CAIRO_SUBPIXEL_ORDER_DEFAULT . subpixel-order-default) (:CAIRO_SUBPIXEL_ORDER_RGB . subpixel-order-rgb) (:CAIRO_SUBPIXEL_ORDER_BGR . subpixel-order-bgr) (:CAIRO_SUBPIXEL_ORDER_VRGB . subpixel-order-vrgb) (:CAIRO_SUBPIXEL_ORDER_VBGR . subpixel-order-vbgr))) (exporting-table table-hint-style '((:CAIRO_HINT_STYLE_DEFAULT . hint-style-default) (:CAIRO_HINT_STYLE_NONE . hint-style-none) (:CAIRO_HINT_STYLE_SLIGHT . hint-style-slight) (:CAIRO_HINT_STYLE_MEDIUM . hint-style-medium) (:CAIRO_HINT_STYLE_FULL . hint-style-full))) (exporting-table table-hint-metrics '((:CAIRO_HINT_METRICS_DEFAULT . hint-metrics-default) (:CAIRO_HINT_METRICS_OFF . hint-metrics-off) (:CAIRO_HINT_METRICS_ON . hint-metrics-on))) (exporting-table table-status '((:CAIRO_STATUS_SUCCESS . status-success) (:CAIRO_STATUS_NO_MEMORY . status-no-memory) (:CAIRO_STATUS_INVALID_RESTORE . status-invalid-restore) (:CAIRO_STATUS_INVALID_POP_GROUP . status-invalid-pop-group) (:CAIRO_STATUS_NO_CURRENT_POINT . status-no-current-point) (:CAIRO_STATUS_INVALID_MATRIX . status-invalid-matrix) (:CAIRO_STATUS_INVALID_STATUS . status-invalid-status) (:CAIRO_STATUS_NULL_POINTER . status-null-pointer) (:CAIRO_STATUS_INVALID_STRING . status-invalid-string) (:CAIRO_STATUS_INVALID_PATH_DATA . status-invalid-path-data) (:CAIRO_STATUS_READ_ERROR . status-read-error) (:CAIRO_STATUS_WRITE_ERROR . status-write-error) (:CAIRO_STATUS_SURFACE_FINISHED . status-surface-finished) (:CAIRO_STATUS_SURFACE_TYPE_MISMATCH . status-surface-type-mismatch) (:CAIRO_STATUS_PATTERN_TYPE_MISMATCH . status-pattern-type-mismatch) (:CAIRO_STATUS_INVALID_CONTENT . status-invalid-content) (:CAIRO_STATUS_INVALID_FORMAT . status-invalid-format) (:CAIRO_STATUS_INVALID_VISUAL . status-invalid-visual) (:CAIRO_STATUS_FILE_NOT_FOUND . status-file-not-found) (:CAIRO_STATUS_INVALID_DASH . status-invalid-dash) (:CAIRO_STATUS_INVALID_DSC_COMMENT . status-invalid-dsc-comment) (:CAIRO_STATUS_INVALID_INDEX . status-invalid-index) (:CAIRO_STATUS_CLIP_NOT_REPRESENTABLE . status-clip-not-representable))) (defun lookup-cairo-enum (cairo-enum table) (let ((enum (cdr (assoc cairo-enum table)))) (unless enum (error "Could not find ~a in ~a." cairo-enum table)) enum)) (defun lookup-enum (enum table) (let ((cairo-enum (car (rassoc enum table)))) (unless cairo-enum (error "Could not find ~a in ~a." enum table)) cairo-enum))