Typo.
[cl-gtk2.git] / gdk / gdk.drawing-primitives.lisp
index 03e7324..b1b6db6 100644 (file)
   (n :int))
 
 (defun draw-points (drawable gc points)
-  (let ((n (length points)))
-    (with-foreign-object (points-ptr 'point-cstruct n)
-      (let ((i 0))
-        (map nil
-             (lambda (pt)
-                 (gobject::copy-slots-to-native
-                  pt
-                  (inc-pointer points-ptr (* i (foreign-type-size 'point-cstruct)))
-                  (gobject::g-boxed-cstruct-wrapper-info-cstruct-description (gobject::get-g-boxed-foreign-info 'point)))
-                 (incf i))
-             points))
-      (gdk-draw-points drawable gc points-ptr n))))
+  (with-foreign-boxed-array (n points-ptr point points)
+    (gdk-draw-points drawable gc points-ptr n)))
 
 (export 'draw-points)
 
   (n :int))
 
 (defun draw-lines (drawable gc points)
-  (let ((n (length points)))
-    (with-foreign-object (points-ptr 'point-cstruct n)
-      (let ((i 0))
-        (map nil
-             (lambda (pt)
-                 (gobject::copy-slots-to-native
-                  pt
-                  (inc-pointer points-ptr (* i (foreign-type-size 'point-cstruct)))
-                  (gobject::g-boxed-cstruct-wrapper-info-cstruct-description (gobject::get-g-boxed-foreign-info 'point)))
-                 (incf i))
-             points))
-      (gdk-draw-lines drawable gc points-ptr n))))
+  (with-foreign-boxed-array (n points-ptr point points)
+    (gdk-draw-lines drawable gc points-ptr n)))
 
 (export 'draw-lines)
 
   (n-segments :int))
 
 (defun draw-segments (drawable gc segments)
-  (let ((n (length segments)))
-    (with-foreign-object (segments-ptr 'segment-cstruct n)
-      (let ((i 0))
-        (map nil
-             (lambda (segment)
-               (gobject::copy-slots-to-native
-                segment
-                (inc-pointer segments-ptr (* i (foreign-type-size 'segment-cstruct)))
-                (gobject::g-boxed-cstruct-wrapper-info-cstruct-description (gobject::get-g-boxed-foreign-info 'segment)))
-               (incf i))
-             segments))
-      (gdk-draw-segments drawable gc segments-ptr n))))
+  (with-foreign-boxed-array (n segments-ptr segment segments)
+    (gdk-draw-segments drawable gc segments-ptr n)))
 
 (export 'draw-segments)
 
   (width :int)
   (height :int))
 
+(export 'draw-rectangle)
+
 (defcfun (draw-arc "gdk_draw_arc") :void
   (drawable (g-object drawable))
   (gc (g-object graphics-context))
   (n-points :int))
 
 (defun draw-polygon (drawable gc filled points)
-  (let ((n (length points)))
-    (with-foreign-object (points-ptr 'point-cstruct n)
-      (let ((i 0))
-        (map nil
-             (lambda (point)
-               (gobject::copy-slots-to-native
-                point
-                (inc-pointer points-ptr (* i (foreign-type-size 'point-cstruct)))
-                (gobject::g-boxed-cstruct-wrapper-info-cstruct-description (gobject::get-g-boxed-foreign-info 'point)))
-               (incf i))
-             points))
-      (gdk-draw-polygon drawable gc filled points-ptr n))))
+  (with-foreign-boxed-array (n points-ptr point points)
+    (gdk-draw-polygon drawable gc filled points-ptr n)))
 
 (export 'draw-polygon)
 
   (n :int))
 
 (defun draw-trapezoids (drawable gc trapezoids)
-  (let ((n (length trapezoids)))
-    (with-foreign-object (trapezoids-ptr 'trapezoid-cstruct n)
-      (let ((i 0))
-        (map nil
-             (lambda (trapezoid)
-               (gobject::copy-slots-to-native
-                trapezoid
-                (inc-pointer trapezoids-ptr (* i (foreign-type-size 'trapezoid-cstruct)))
-                (gobject::g-boxed-cstruct-wrapper-info-cstruct-description (gobject::get-g-boxed-foreign-info 'trapezoid)))
-               (incf i))
-             trapezoids))
-      (gdk-draw-trapezoids drawable gc trapezoids-ptr n))))
+  (with-foreign-boxed-array (n trapezoids-ptr trapezoid trapezoids)
+    (gdk-draw-trapezoids drawable gc trapezoids-ptr n)))
 
 (export 'draw-trapezoids)
 
-;; TODO
-;; void                gdk_draw_glyphs                     (GdkDrawable *drawable,
-;;                                                          GdkGC *gc,
-;;                                                          PangoFont *font,
-;;                                                          gint x,
-;;                                                          gint y,
-;;                                                          PangoGlyphString *glyphs);
-;; void                gdk_draw_glyphs_transformed         (GdkDrawable *drawable,
-;;                                                          GdkGC *gc,
-;;                                                          const PangoMatrix *matrix,
-;;                                                          PangoFont *font,
-;;                                                          gint x,
-;;                                                          gint y,
-;;                                                          PangoGlyphString *glyphs);
-;; void                gdk_draw_layout_line                (GdkDrawable *drawable,
-;;                                                          GdkGC *gc,
-;;                                                          gint x,
-;;                                                          gint y,
-;;                                                          PangoLayoutLine *line);
-;; void                gdk_draw_layout_line_with_colors    (GdkDrawable *drawable,
-;;                                                          GdkGC *gc,
-;;                                                          gint x,
-;;                                                          gint y,
-;;                                                          PangoLayoutLine *line,
-;;                                                          const GdkColor *foreground,
-;;                                                          const GdkColor *background);
+(defcfun (draw-glyphs "gdk_draw_glyphs") :void
+  (drawable (g-object drawable))
+  (gc (g-object graphics-context))
+  (font (g-object pango-font))
+  (x :int)
+  (y :int)
+  (glyphs (g-boxed-foreign pango-glyph-string)))
+
+(export 'draw-glyphs)
+
+(defcfun (draw-glyphs-transformed "gdk_draw_glyphs_transformed") :void
+  (drawable (g-object drawable))
+  (gc (g-object graphics-context))
+  (matrix (g-boxed-foreign pango-matrix))
+  (font (g-object pango-font))
+  (x :int)
+  (y :int))
+
+(export 'draw-glyphs-transformed)
+
+(defcfun (draw-layout-line "gdk_draw_layout_line") :void
+  (drawable (g-object drawable))
+  (gc (g-object graphics-context))
+  (x :int)
+  (y :int)
+  (line (g-boxed-foreign pango-layout-line)))
+
+(export 'draw-layout-line)
+
+(defcfun (draw-layout-line-with-colors "gdk_draw_layout_line_with_colors") :void
+  (drawable (g-object drawable))
+  (gc (g-object graphics-context))
+  (x :int)
+  (y :int)
+  (line (g-boxed-foreign pango-layout-line))
+  (foreground (g-boxed-foreign color))
+  (background (g-boxed-foreign color)))
+
+(export 'draw-layout-line-with-colors)
 
 (defcfun (draw-layout "gdk_draw_layout") :void
   (drawable (g-object drawable))