# see glib-genmarshal(1) for a detailed description of the file format, # possible parameter types are: # VOID indicates no return type, or no extra # parameters. if VOID is used as the parameter # list, no additional parameters may be present. # BOOLEAN for boolean types (gboolean) # CHAR for signed char types (gchar) # UCHAR for unsigned char types (guchar) # INT for signed integer types (gint) # UINT for unsigned integer types (guint) # LONG for signed long integer types (glong) # ULONG for unsigned long integer types (gulong) # ENUM for enumeration types (gint) # FLAGS for flag enumeration types (guint) # FLOAT for single-precision float types (gfloat) # DOUBLE for double-precision float types (gdouble) # STRING for string types (gchar*) # BOXED for boxed (anonymous but reference counted) types (GBoxed*) # POINTER for anonymous pointer types (gpointer) # NONE deprecated alias for VOID # BOOL deprecated alias for BOOLEAN # # One discrepancy from Gtk+ is that for signals that may pass NULL for an object # reference, the Haskell signal should be passed a 'Maybe GObject'. # We therefore have two variants that are marshalled as a maybe type: # # OBJECT for GObject or derived types (GObject*) # MOBJECT for GObject or derived types (GObject*) that may be NULL # Furthermore, some objects needs to be destroyed synchronously from the main loop of # Gtk rather than during GC. These objects need to be marshalled using TOBJECT (for thread-safe # object). It doesn't hurt to use TOBJECT for an object that doesn't need it, except for the # some performance. As a rule of thumb, use TOBJECT for all libraries that build on package # 'gtk' and use OBJECT for all packages that only need packages 'glib', 'pango', 'cairo', # 'gio'. Again both variants exist. Note that the same names will be generated for OBJECT and # TOBJECT, so you have to remove the OBJECT handler if you need both. # # TOBJECT for GObject or derived types (GObject*) # MTOBJECT for GObject or derived types (GObject*) that may be NULL # If you add a new signal type, please check that it actually works! # If it is a Boxed type check that the reference counting is right. BOOLEAN:BOXED BOOLEAN:POINTER BOOLEAN:BOXED,BOXED BOOLEAN:ENUM BOOLEAN:ENUM,DOUBLE BOOLEAN:INT #BOOLEAN:ENUM,INT #BOOLEAN:TOBJECT,UINT,FLAGS #BOOLEAN:TOBJECT,INT,INT,UINT #BOOLEAN:TOBJECT,STRING,STRING,BOXED BOOLEAN:TOBJECT,BOXED #BOOLEAN:TOBJECT,BOXED,BOXED #BOOLEAN:TOBJECT,STRING,STRING BOOLEAN:INT,INT BOOLEAN:INT,INT,INT BOOLEAN:UINT BOOLEAN:VOID BOOLEAN:BOOLEAN #BOOLEAN:BOOLEAN,BOOLEAN,BOOLEAN ENUM:VOID ENUM:ENUM INT:POINTER VOID:BOOLEAN #VOID:ENUM VOID:INT #VOID:INT,BOOLEAN VOID:INT,INT VOID:VOID #VOID:STRING,INT,POINTER #STRING:DOUBLE VOID:DOUBLE #VOID:BOOLEAN,BOOLEAN,BOOLEAN VOID:BOXED VOID:BOXED,BOXED VOID:BOXED,BOXED,POINTER VOID:BOXED,TOBJECT #VOID:BOXED,STRING,INT VOID:BOXED,UINT #VOID:BOXED,UINT,FLAGS #VOID:BOXED,UINT,UINT VOID:ENUM #VOID:ENUM,BOOLEAN #VOID:ENUM,ENUM #VOID:ENUM,FLOAT #VOID:ENUM,FLOAT,BOOLEAN VOID:ENUM,INT VOID:ENUM,INT,BOOLEAN #VOID:INT #VOID:INT,INT #VOID:INT,INT,BOXED #VOID:INT,INT,INT VOID:TOBJECT VOID:MTOBJECT #VOID:TOBJECT,BOOLEAN VOID:TOBJECT,BOXED,BOXED #VOID:TOBJECT,BOXED,UINT,UINT #VOID:TOBJECT,INT,INT #VOID:TOBJECT,INT,INT,BOXED,UINT,UINT VOID:TOBJECT,TOBJECT #VOID:TOBJECT,STRING,STRING #VOID:TOBJECT,UINT #VOID:TOBJECT,UINT,FLAGS VOID:POINTER #VOID:POINTER,INT #VOID:POINTER,BOOLEAN #VOID:POINTER,POINTER,POINTER VOID:POINTER,UINT VOID:STRING # This is for the "edited" signal in CellRendererText: VOID:STRING,STRING #VOID:STRING,INT,POINTER #VOID:STRING,UINT,FLAGS #VOID:UINT,FLAGS,BOXED VOID:UINT,UINT VOID:UINT,STRING #VOID:UINT,BOXED,UINT,FLAGS,FLAGS #VOID:UINT,TOBJECT,UINT,FLAGS,FLAGS # This marshaller is necessary to marshal a string with explicit length in a # callback "text-insert" in TextBuffer. VOID:BOXED,POINTER,INT # This one is needed in TextView: VOID:INT,BOOLEAN # This is for the "editing-started" in CellRenderer VOID:TOBJECT,STRING # This is for GtkMozEmbed BOOLEAN:STRING # This makes it possible to catch events on TextTags BOOLEAN:TOBJECT,POINTER,BOXED BOOLEAN:POINTER,BOXED,BOXED # This is onInsertText in Editable VOID:POINTER,INT,POINTER # For SelectionData VOID:POINTER,UINT,UINT VOID:TOBJECT,POINTER,UINT,UINT VOID:TOBJECT,INT,INT,POINTER,UINT,UINT BOOLEAN:TOBJECT,INT,INT,UINT VOID:TOBJECT,UINT BOOLEAN:TOBJECT,INT,INT,UINT # for GtkRange::change-value BOOLEAN:ENUM,DOUBLE # for Drag.dragFailed BOOLEAN:TOBJECT,ENUM # for TextBuffer NONE:BOXED,STRING # for Notebook NONE:TOBJECT,INT BOOLEAN:ENUM,BOOLEAN NONE:BOXED,INT # for TextBuffer NONE:BOXED,STRING # For queryTooltip BOOLEAN:TOBJECT,INT,INT,BOOLEAN,TOBJECT # For EntryBuffer NONE:INT,STRING,INT # For CellRendererAccel NONE:STRING,INT,ENUM,INT # For PrintOperation BOOLEAN:OBJECT NONE:OBJECT,INT,OBJECT NONE:OBJECT,OBJECT,OBJECT BOOLEAN:OBJECT,OBJECT,OBJECT VOID:ENUM,POINTER