Changed required Cairo version to 1.2
[clg] / cairo / cairo.lisp
index 4fa79f1..d90b658 100644 (file)
@@ -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.8 2007/01/11 10:20:22 espen Exp $
+;; $Id: cairo.lisp,v 1.10 2007/01/13 00:15:36 espen Exp $
 
 (in-package "CAIRO")
 
       :type double-float))
     (:metaclass struct-class))
 
-  (defclass font-face (proxy)
+  (defclass font-face (ref-counted-object)
     ()
     (:metaclass proxy-class)
     (:ref %font-face-reference)
     (:unref %font-face-destroy))
 
-  (defclass font-options (proxy)
+  (defclass font-options (ref-counted-object)
     ((antialias
       :allocation :virtual 
       :getter "font_options_get_antialias"
     (:ref %font-options-reference)
     (:unref %font-options-destroy))
 
-  (defclass scaled-font (proxy)
+  (defclass scaled-font (ref-counted-object)
     ()
     (:metaclass proxy-class)
     (:ref %scaled-font-reference)
      (y-advance :allocation :alien :reader text-extents-y-advance :type double-float))
     (:metaclass struct-class))
 
-  (defclass pattern (proxy)
+  (defclass pattern (ref-counted-object)
     ((extend
       :allocation :virtual 
       :getter "cairo_pattern_get_extend"
     (:unref %pattern-destroy))
 
 
-  (defclass surface (proxy)
+  (defclass surface (ref-counted-object)
     (#?(pkg-exists-p "cairo" :atleast-version "1.2")
      (type
       :allocation :virtual 
-      :getter "cairo_surface_get_tyoe"
+      :getter "cairo_surface_get_type"
       :reader surface-type
       :type surface-type)
      #?(pkg-exists-p "cairo" :atleast-version "1.2")
     (:ref %surface-reference)
     (:unref %surface-destroy))
 
-  (defclass context (proxy)
+  (defclass context (ref-counted-object)
     ((target
       :allocation :virtual 
       :getter "cairo_get_target"
     (:unref %destroy))
 
   (defclass image-surface (surface)
-    ((width
+    (#?(pkg-exists-p "cairo" :atleast-version "1.2")
+     (data
+      :allocation :virtual 
+      :getter "cairo_image_surface_get_data"
+      :reader surface-data
+      :type pointer)
+     #?(pkg-exists-p "cairo" :atleast-version "1.2")
+     (format
+      :allocation :virtual 
+      :getter "cairo_image_surface_get_format"
+      :reader surface-format
+      :type surface-format)
+     (width
       :allocation :virtual 
       :getter "cairo_image_surface_get_width"
       :reader surface-width
       :allocation :virtual 
       :getter "cairo_image_surface_get_height"
       :reader surface-height
+      :type int)
+     #?(pkg-exists-p "cairo" :atleast-version "1.2")
+     (stride
+      :allocation :virtual 
+      :getter "cairo_image_surface_get_stride"
+      :reader surface-height
       :type int))
-    (:metaclass proxy-class)
-    (:ref %surface-reference)
-    (:unref %surface-destroy))
+    (:metaclass proxy-class))
+
+  #?(pkg-exists-p "cairo" :atleast-version "1.2")
+  (progn
+    (defclass xlib-surface (surface)
+      ((width
+       :allocation :virtual 
+       :getter "cairo_xlib_surface_get_width"
+       :reader surface-width
+       :type int)
+       (height
+       :allocation :virtual 
+       :getter "cairo_xlib_surface_get_height"
+       :reader surface-height
+       :type int))
+      (:metaclass proxy-class))
+
+    (defclass pdf-surface (surface)
+      ()
+      (:metaclass proxy-class))
+
+    (defclass ps-surface (surface)
+      ()
+      (:metaclass proxy-class))
+    
+    (defclass svg-surface (surface)
+      ()
+      (:metaclass proxy-class)))
+
 
 
 ;;   (defclass path (proxy)
 
 ;;; Cairo context
 
-(defbinding %reference () nil
+(defbinding %reference () pointer
   (location pointer))
 
 (defbinding %destroy () nil
                 (cr context)
                 (x double-float)
                 (y double-float))
-              (defbinding ,ename () boolean
+              (defbinding ,ename () nil
                 (cr context)
                 (x1 double-float :out)
                 (y1 double-float :out)
   (cy1 double-float)
   (radius1 double-float))
 
-(defbinding %pattern-reference () nil
+(defbinding %pattern-reference () pointer
   (location pointer))
 
 (defbinding %pattern-destroy () nil
 
 ;;; Fonts
 
-(defbinding %font-face-reference () nil
+(defbinding %font-face-reference () pointer
   (location pointer))
 
 (defbinding %font-face-destroy () nil
 
 ;;; Scaled Fonts
 
-(defbinding %scaled-font-reference () nil
+(defbinding %scaled-font-reference () pointer
   (location pointer))
 
 (defbinding %scaled-font-destroy () nil
 
 ;;; Surfaces
 
-(defbinding %surface-reference () nil
+(defbinding %surface-reference () pointer
   (location pointer))
 
 (defbinding %surface-destroy () nil