]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/gobject/ffi/ffi.factor
gobject-introspection: rewrite gir files loading and code generation totally
[factor.git] / basis / gobject / ffi / ffi.factor
index 30100de3b911572f932cb7007fa32d9a55148dc1..070a2c5dea587e05442af11fc2de863203de0894 100644 (file)
@@ -1,11 +1,15 @@
-! Copyright (C) 2009 Anton Gorenko.
+! Copyright (C) 2010 Anton Gorenko.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax alien.destructors alien.libraries
-classes.struct combinators kernel literals math system
-gobject-introspection glib.ffi ;
-EXCLUDE: alien.c-types => pointer ;
+USING: alien alien.destructors alien.libraries alien.syntax
+combinators gobject-introspection literals math system vocabs.loader ;
 IN: gobject.ffi
 
+<<
+"glib.ffi" require
+>>
+
+LIBRARY: gobject
+
 <<
 "gobject" {
     { [ os winnt? ] [ "libobject-2.0-0.dll" cdecl add-library ] }
@@ -14,17 +18,12 @@ IN: gobject.ffi
 } cond
 >>
 
-TYPEDEF: void* GSignalCMarshaller
-TYPEDEF: gchar** GStrv
-TYPEDEF: gchar* gchararray
+IMPLEMENT-STRUCTS: GValue GParamSpecVariant ;
 
 GIR: vocab:gobject/GObject-2.0.gir
 
 IN: gobject.ffi
 
-FORGET: GValue
-STRUCT: GValue { g_type GType } { data guint64[2] } ;
-
 FORGET: GIOCondition
 FORGET: G_IO_IN
 FORGET: G_IO_OUT
@@ -33,12 +32,8 @@ FORGET: G_IO_ERR
 FORGET: G_IO_HUP
 FORGET: G_IO_NVAL
 
-FUNCTION: void g_object_unref ( GObject* self ) ;
-
 DESTRUCTOR: g_object_unref
 
-TYPEDEF: GParamSpec GParam
-
 CONSTANT: G_TYPE_INVALID $[ 0 2 shift ]
 CONSTANT: G_TYPE_NONE $[ 1 2 shift ]
 CONSTANT: G_TYPE_INTERFACE $[ 2 2 shift ]
@@ -71,4 +66,3 @@ CONSTANT: G_TYPE_OBJECT $[ 20 2 shift ]
 
 : g_signal_connect_swapped ( instance detailed_signal c_handler data -- result )
     f G_CONNECT_SWAPPED g_signal_connect_data ;
-