Finish Gdk/Drawing-primitives and add sever Pango types
authorDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Sat, 14 Nov 2009 21:47:32 +0000 (00:47 +0300)
committerDmitry Kalyanov <Kalyanov.Dmitry@gmail.com>
Sat, 14 Nov 2009 21:47:32 +0000 (00:47 +0300)
gdk/gdk.drawing-primitives.lisp
gdk/gdk.objects.lisp
pango/pango.lisp

index 6d32034..bdd09c9 100644 (file)
 
 (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))
index 4e887a8..78774d5 100644 (file)
           nil "gdk_app_launch_context_set_screen")
    (:cffi desktop gdk-app-launch-context-desktop :int
           nil "gdk_app_launch_context_set_desktop")
-   (:cffi timestamp gdk-app-launch-context-timestamp :uin32
+   (:cffi timestamp gdk-app-launch-context-timestamp :uint32
           nil "gdk_app_launch_context_set_timestamp")
    (:cffi icon gdk-app-launch-context-icon g-object
           nil "gdk_app_launch_context_set_icon")
index 2df572f..9be3323 100644 (file)
   (:background 1)
   (:underline 2)
   (:strikethrough 3))
+
+(defcfun pango_glyph_string_new :pointer)
+
+(define-g-boxed-opaque pango-glyph-string "PangoGlyphString"
+  :alloc (pango_glyph_string_new))
+
+(export (boxed-related-symbols 'pango-glyph-string))
+
+(define-g-object-class "PangoFont" pango-font
+  (:superclass g-object :export t :interfaces
+               nil :type-initializer
+               "pango_font_get_type")
+  nil)
+
+(define-g-boxed-cstruct pango-matrix "PangoMatrix"
+  (xx :double :initform 0.0)
+  (xy :double :initform 0.0)
+  (yx :double :initform 0.0)
+  (yy :double :initform 0.0)
+  (x0 :double :initform 0.0)
+  (y0 :double :initform 0.0))
+
+(export (boxed-related-symbols 'pango-matrix))
+
+(define-g-boxed-opaque pango-layout-line "PangoLayoutLine"
+  :alloc (error "You do not create PangoLayoutLine yourself"))
+
+(export (boxed-related-symbols 'pango-layout-line))