X-Git-Url: https://git.distorted.org.uk/~mdw/clg/blobdiff_plain/f2625489765aab779b206f7f783ae873e2c99cc1..c2ac6d66df9223a4aef7769d003347c035947741:/cairo/cairo.lisp diff --git a/cairo/cairo.lisp b/cairo/cairo.lisp index e304069..c4760cd 100644 --- a/cairo/cairo.lisp +++ b/cairo/cairo.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: cairo.lisp,v 1.18 2007/10/31 11:52:53 espen Exp $ +;; $Id: cairo.lisp,v 1.21 2008/01/10 13:32:34 espen Exp $ (in-package "CAIRO") @@ -299,15 +299,15 @@ :type double-float) (font-matrix :allocation :virtual - :getter "cairo_get_font_matrix" + :getter font-matrix :setter "cairo_set_font_matrix" - :accessor font-matrix + :writer (setf font-matrix) :type matrix) (font-options :allocation :virtual - :getter "cairo_get_font_options" + :getter font-options :setter "cairo_set_font_options" - :accessor font-options + :writer (setf font-options) :type font-options) (font-face :allocation :virtual @@ -315,6 +315,13 @@ :setter "cairo_set_font_face" :accessor font-face :type font-face) + #?(pkg-exists-p "cairo" :atleast-version "1.4") + (scaled-font + :allocation :virtual + :getter "cairo_get_scaled_font" + :setter "cairo_set_scaled_font" + :accessor scaled-font + :type scaled-font) (operator :allocation :virtual :getter "cairo_get_operator" @@ -655,13 +662,21 @@ (cr context) (size double-float)) +(defbinding (font-matrix "cairo_get_font_matrix") () nil + (cr context) + ((make-instance 'matrix) matrix :in/return)) + +(defbinding (font-options "cairo_get_font_options") () nil + (cr context) + ((make-instance 'font-options) font-options :in/return)) + (defbinding show-text () nil (cr context) (text string)) (defbinding show-glyphs () nil (cr context) - (glyphs (vector glyph)) + (glyphs (vector (inlined glyph))) ((length glyphs) int)) (defbinding font-extents (cr &optional (extents (make-instance 'font-extents))) nil @@ -1061,3 +1076,17 @@ (matrix matrix) (x double-float :in/out) (y double-float :in/out)) + + +;; Version information + +(defbinding %version () int) + +(defun version () + (let ((version (%version))) + (values + (mod (truncate version 10000) 100) + (mod (truncate version 100) 100) + (mod version 100)))) + +(defbinding version-string () (static string))