Module Gobject


module Gobject: sig .. end

type -'a obj 
type g_type 
type g_class 
type g_value 
type g_closure 
type basic = [ `BOOL of bool
| `CAML of Obj.t
| `CHAR of char
| `FLOAT of float
| `INT of int
| `INT64 of int64
| `POINTER of Gpointer.boxed option
| `STRING of string option ]
type data_get = [ `BOOL of bool
| `CAML of Obj.t
| `CHAR of char
| `FLOAT of float
| `INT of int
| `INT64 of int64
| `NONE
| `OBJECT of unit obj option
| `POINTER of Gpointer.boxed option
| `STRING of string option ]
type 'a data_set = [ `BOOL of bool
| `CAML of Obj.t
| `CHAR of char
| `FLOAT of float
| `INT of int
| `INT32 of int32
| `INT64 of int64
| `LONG of nativeint
| `OBJECT of 'a obj option
| `POINTER of Gpointer.boxed option
| `STRING of string option ]
type base_data = [ `BOOLEAN
| `BOXED
| `CHAR
| `DOUBLE
| `ENUM
| `FLAGS
| `FLOAT
| `INT
| `INT64
| `LONG
| `OBJECT
| `POINTER
| `STRING
| `UCHAR
| `UINT
| `UINT64
| `ULONG ]
type data_kind = [ `BOOLEAN
| `BOXED
| `CHAR
| `DOUBLE
| `ENUM
| `FLAGS
| `FLOAT
| `INT
| `INT32
| `INT64
| `LONG
| `OBJECT
| `OTHER of g_type
| `POINTER
| `STRING
| `UCHAR
| `UINT
| `UINT32
| `UINT64
| `ULONG ]
type data_conv_get = [ `BOOL of bool
| `CAML of Obj.t
| `CHAR of char
| `FLOAT of float
| `INT of int
| `INT32 of int32
| `INT64 of int64
| `NONE
| `OBJECT of unit obj option
| `POINTER of Gpointer.boxed option
| `STRING of string option ]

type 'a data_conv = {
   kind : data_kind;
   proj : data_conv_get -> 'a;
   inj : 'a -> unit data_set;
}
type ('a, 'b) property = {
   name : string;
   conv : 'b data_conv;
}
type fundamental_type = [ `BOOLEAN
| `BOXED
| `CHAR
| `DOUBLE
| `ENUM
| `FLAGS
| `FLOAT
| `INT
| `INT64
| `INTERFACE
| `INVALID
| `LONG
| `NONE
| `OBJECT
| `PARAM
| `POINTER
| `STRING
| `UCHAR
| `UINT
| `UINT64
| `ULONG ]
exception Cannot_cast of string * string
val get_type : 'a obj -> g_type
val is_a : 'a obj -> string -> bool
val try_cast : 'a obj -> string -> 'b obj
val get_oid : 'a obj -> int
val unsafe_cast : 'a obj -> 'b obj
val coerce : 'a obj -> unit obj
val coerce_option : 'a obj option -> unit obj option
type +'a param 
val dyn_param : string -> 'a data_set -> 'b param
val param : ('a, 'b) property -> 'b -> 'a param
val unsafe_create : classe:string -> 'a param list -> 'a obj
val unsafe_unref : 'a obj -> unit
val get_ref_count : 'a obj -> int
val set : ('a, 'b) property -> 'a obj -> 'b -> unit
val get : ('a, 'b) property -> 'a obj -> 'b
val set_params : 'a obj -> 'a param list -> unit
module Type: sig .. end
module Value: sig .. end
module Closure: sig .. end
module Data: sig .. end
module Property: sig .. end