Typo.
[cl-gtk2.git] / glib / gobject.type-info.lisp
index b56cc6a..1a7a8e5 100644 (file)
-(defpackage :gobject.type-info
-  (:use :cl :iter :cffi :glib)
-  (:export #:+g-type-invalid+
-           #:+g-type-void+
-           #:+g-type-interface+
-           #:+g-type-char+
-           #:+g-type-uchar+
-           #:+g-type-boolean+
-           #:+g-type-int+
-           #:+g-type-uint+
-           #:+g-type-long+
-           #:+g-type-ulong+
-           #:+g-type-int64+
-           #:+g-type-uint64+
-           #:+g-type-enum+
-           #:+g-type-flags+
-           #:+g-type-float+
-           #:+g-type-double+
-           #:+g-type-string+
-           #:+g-type-pointer+
-           #:+g-type-boxed+
-           #:+g-type-param+
-           #:+g-type-object+
-           #:g-type-name
-           #:g-type-from-name
-           #:g-type
-           #:g-type-children
-           #:g-type-parent
-           #:g-type-designator
-           #:g-type-fundamental
-           #:g-type-depth
-           #:g-type-next-base
-           #:g-type-is-a
-           #:g-type-interfaces
-           #:g-type-interface-prerequisites
-           #:g-strv-get-type
-           #:g-closure-get-type))
-
-(in-package :gobject.type-info)
+(in-package :gobject)
 
 (defctype g-type gsize)
 
-(eval-when (:load-toplevel :compile-toplevel)
+(eval-when (:compile-toplevel :load-toplevel :execute)
   (defun gtype-make-fundamental-type (x)
     (ash x 2)))
 
-(defconstant +g-type-invalid+ (gtype-make-fundamental-type 0))
-(defconstant +g-type-void+ (gtype-make-fundamental-type 1))
-(defconstant +g-type-interface+ (gtype-make-fundamental-type 2))
-(defconstant +g-type-char+ (gtype-make-fundamental-type 3))
-(defconstant +g-type-uchar+ (gtype-make-fundamental-type 4))
-(defconstant +g-type-boolean+ (gtype-make-fundamental-type 5))
-(defconstant +g-type-int+ (gtype-make-fundamental-type 6))
-(defconstant +g-type-uint+ (gtype-make-fundamental-type 7))
-(defconstant +g-type-long+ (gtype-make-fundamental-type 8))
-(defconstant +g-type-ulong+ (gtype-make-fundamental-type 9))
-(defconstant +g-type-int64+ (gtype-make-fundamental-type 10))
-(defconstant +g-type-uint64+ (gtype-make-fundamental-type 11))
-(defconstant +g-type-enum+ (gtype-make-fundamental-type 12))
-(defconstant +g-type-flags+ (gtype-make-fundamental-type 13))
-(defconstant +g-type-float+ (gtype-make-fundamental-type 14))
-(defconstant +g-type-double+ (gtype-make-fundamental-type 15))
-(defconstant +g-type-string+ (gtype-make-fundamental-type 16))
-(defconstant +g-type-pointer+ (gtype-make-fundamental-type 17))
-(defconstant +g-type-boxed+ (gtype-make-fundamental-type 18))
-(defconstant +g-type-param+ (gtype-make-fundamental-type 19))
-(defconstant +g-type-object+ (gtype-make-fundamental-type 20))
-
-(define-foreign-type g-type-designator ()
-  ()
-  (:documentation "Values of this type identify the GType. GType is designated by a its name (a string) or a numeric identifier. Functions accept GType designators as a string or integer and return them as a string. Functions @fun{g-type-name} and @fun{g-type-from-name} are used to convert between name and numeric identifier.")
-  (:actual-type g-type)
-  (:simple-parser g-type-designator))
-
-(defmethod translate-from-foreign (value (type g-type-designator))
-  (g-type-name value))
-
-(defmethod translate-to-foreign (value (type g-type-designator))
-  (etypecase value
-    (string (g-type-from-name value))
-    (integer value)
-    (null +g-type-invalid+)))
-
-(defcfun (g-type-fundamental "g_type_fundamental") g-type-designator
-  "Returns the fundamental type which is the ancestor of @code{type}.
-@arg[type]{GType designator (see @class{g-type-fundamental})}
-@return{GType designator}"
-  (type g-type-designator))
-
-(defcfun (%g-type-init "g_type_init") :void)
-
-(at-init () (%g-type-init))
-
-(defcfun (g-type-name "g_type_name") :string
-  "Returns the name of a GType.
-
-@arg[type]{GType designator (see @class{g-type-designator})}
-@return{a string}"
-  (type g-type-designator))
-
-(defcfun (g-type-from-name "g_type_from_name") g-type
-  "Returns the numeric identifier of a GType by its name
-
-@arg[name]{a string - name of GType}
-@return{an integer}"
-  (name :string))
-
-(defcfun g-type-parent g-type-designator
-  "Returns the parent of a GType
-
-@arg[type]{GType designator (see @class{g-type-designator})}
-@return{GType designator}"
-  (type g-type-designator))
-
-(defcfun g-type-depth :uint
-  "Returns the length of the ancestry of @code{type}. This includes the @code{type} itself, so that e.g. a fundamental type has depth 1.
-@arg[type]{GType designator (see @class{g-type-designator})}
-@return{an integer}"
-  (type g-type-designator))
-
-(defcfun g-type-next-base g-type-designator
-  "Determines the type that is derived directly from @code{root-type} which is also a base class of @code{leaf-type}.
-@arg[leaf-type]{GType designator (see @class{g-type-designator})}
-@arg[root-type]{GType designator}
-@return{GType designator}"
-  (leaf-type g-type-designator)
-  (root-type g-type-designator))
-
-(defcfun g-type-is-a :boolean
-  "If @code{is-a-type} is a derivable type, check whether type is a descendant of @code{is-a-type}. If @code{is-a-type} is an interface, check whether type conforms to it.
-@arg[type]{GType designator (see @class{g-type-designator})}
-@arg[is-a-type]{GType designator}
-@return{boolean}"
-  (type g-type-designator)
-  (is-a-type g-type-designator))
-
-(defcfun (%g-type-children "g_type_children") (:pointer g-type)
-  (type g-type-designator)
-  (n-children (:pointer :uint)))
+(defconstant +g-type-invalid+ (gtype-make-fundamental-type 0) "An invalid GType used as error return value in some functions which return a GType.")
+(defconstant +g-type-void+ (gtype-make-fundamental-type 1) "A fundamental type which is used as a replacement for the C @code{void} return type.")
+(defconstant +g-type-interface+ (gtype-make-fundamental-type 2) "The fundamental type from which all interfaces are derived.")
+(defconstant +g-type-char+ (gtype-make-fundamental-type 3) "The fundamental type corresponding to gchar. The type designated by @variable{+g-type-char+} is unconditionally an 8-bit signed integer. This may or may not be the same type a the C type @code{gchar}.")
+(defconstant +g-type-uchar+ (gtype-make-fundamental-type 4) "The fundamental type corresponding to @code{guchar}.")
+(defconstant +g-type-boolean+ (gtype-make-fundamental-type 5) "The fundamental type corresponding to @code{gboolean}.")
+(defconstant +g-type-int+ (gtype-make-fundamental-type 6) "The fundamental type corresponding to @code{gint}.")
+(defconstant +g-type-uint+ (gtype-make-fundamental-type 7) "The fundamental type corresponding to @code{guint}.")
+(defconstant +g-type-long+ (gtype-make-fundamental-type 8) "The fundamental type corresponding to @code{glong}.")
+(defconstant +g-type-ulong+ (gtype-make-fundamental-type 9) "The fundamental type corresponding to @code{gulong}.")
+(defconstant +g-type-int64+ (gtype-make-fundamental-type 10) "The fundamental type corresponding to @code{gint64}.")
+(defconstant +g-type-uint64+ (gtype-make-fundamental-type 11) "The fundamental type corresponding to @code{guint64}.")
+(defconstant +g-type-enum+ (gtype-make-fundamental-type 12) "The fundamental type from which all enumeration types are derived.")
+(defconstant +g-type-flags+ (gtype-make-fundamental-type 13) "The fundamental type from which all flags types are derived.")
+(defconstant +g-type-float+ (gtype-make-fundamental-type 14) "The fundamental type corresponding to @code{gfloat}.")
+(defconstant +g-type-double+ (gtype-make-fundamental-type 15) "The fundamental type corresponding to @code{gdouble}.")
+(defconstant +g-type-string+ (gtype-make-fundamental-type 16) "The fundamental type corresponding to null-terminated C strings.")
+(defconstant +g-type-pointer+ (gtype-make-fundamental-type 17) "The fundamental type corresponding to @code{gpointer}.")
+(defconstant +g-type-boxed+ (gtype-make-fundamental-type 18) "The fundamental type from which all boxed types are derived.")
+(defconstant +g-type-param+ (gtype-make-fundamental-type 19) "The fundamental type from which all GParamSpec types are derived.")
+(defconstant +g-type-object+ (gtype-make-fundamental-type 20) "The fundamental type for GObject.")
 
 (defun g-type-children (g-type)
-  "Returns the list of types inherited from @code{g-type}.
-
+  "Returns the list of types inherited from @code{g-type}.@see{g-type-parent}
+
+Example:
+@pre{
+\(g-type-children \"GtkObject\")
+=> (\"GtkWidget\" \"GtkAdjustment\" \"GtkTreeViewColumn\" \"GtkCellRenderer\"
+    \"GtkFileFilter\" \"GtkRecentFilter\" \"GtkTooltips\")
+}
 @arg[g-type]{GType designator (see @class{g-type-designator})}
 @return{list of GType designators}"
   (with-foreign-object (n-children :uint)
              collect (mem-aref g-types-ptr 'g-type-designator i))
         (g-free g-types-ptr)))))
 
-(defcfun (%g-type-interfaces "g_type_interfaces") (:pointer g-type)
-  (type g-type-designator)
-  (n-interfaces (:pointer :uint)))
-
 (defun g-type-interfaces (g-type)
   "Returns the list of interfaces the @code{g-type} conforms to.
 
+Example:
+@pre{
+\(g-type-interfaces \"GtkButton\")
+=> (\"AtkImplementorIface\" \"GtkBuildable\" \"GtkActivatable\")
+}
 @arg[g-type]{GType designator (see @class{g-type-designator})}
 @return{list of GType designators}"
   (with-foreign-object (n-interfaces :uint)
              collect (mem-aref g-types-ptr 'g-type-designator i))
         (g-free g-types-ptr)))))
 
-(defcfun (%g-type-interface-prerequisites "g_type_interface_prerequisites") (:pointer g-type)
-  (type g-type-designator)
-  (n-interface-prerequisites (:pointer :uint)))
-
 (defun g-type-interface-prerequisites (g-type)
   "Returns the prerequisites of an interface type. Prerequisite is a type that must be a superclass of an implementing class or an interface that the object must also implement.
+
+Example:
+@pre{
+\(g-type-interface-prerequisites \"GtkTreeModel\")
+=> (\"GObject\")
+}
 @arg[g-type]{GType designator (see @class{g-type-designator})}
 @return{list of GType designators}"
   (with-foreign-object (n-interface-prerequisites :uint)
              collect (mem-aref g-types-ptr 'g-type-designator i))
         (g-free g-types-ptr)))))
 
-(defcfun g-strv-get-type g-type-designator)
-
-(at-init nil (g-strv-get-type))
-
-(defcfun g-closure-get-type g-type-designator)
-
-(at-init nil (g-closure-get-type))