Ver código fonte

refactor: hand-curate the Gdk and Gsk bindings

Replace all 100 generator-derived Gdk/Gsk modules with hand-curated
bindings in the project's house style (prose module headers, C-prototype
comments, typed returns instead of ignorable ones, real value records
where appropriate).

Highlights:
- GdkRectangle is now a real RECORD (x, y, width, height) passed by VAR.
- Enum-typed accessors/mutators use CARDINAL throughout (e.g.
  gdk_device_get_direction, gdk_scroll_event_get_direction,
  gdk_seat_get_capabilities, gdk_toplevel_get_state,
  gsk_transform_get_category, gsk_texture_scale_node_get_filter).
- Pointer returns are the owning type (new/ref/copy) or ADDRESS.
- Removed the last variadic and placeholder-parameter artifacts and the
  "Generated by" provenance lines.
- Fixed a couple of generator bugs (gdk_event_get_axes out-parameter,
  gdk_event_get_history return type).

The full generator output remains available under gen/ for breadth; the
Gdk/Gsk modules in src/ are now hand-written like the rest of the
library.  (The remaining libpanel modules are still generator-derived.)

Test suite: 45 passed. gir-verify: 0 unexpected.
Eric Streit 2 dias atrás
pai
commit
77f7ed7f98
100 arquivos alterados com 2801 adições e 1535 exclusões
  1. 5 6
      README.md
  2. 28 11
      src/GdkAppLaunchContext.def
  3. 6 3
      src/GdkButtonEvent.def
  4. 6 3
      src/GdkCairoContext.def
  5. 46 25
      src/GdkCicpParams.def
  6. 27 29
      src/GdkColorState.def
  7. 53 29
      src/GdkContentDeserializer.def
  8. 80 55
      src/GdkContentFormats.def
  9. 28 18
      src/GdkContentFormatsBuilder.def
  10. 57 23
      src/GdkContentSerializer.def
  11. 12 7
      src/GdkCrossingEvent.def
  12. 39 17
      src/GdkCursor.def
  13. 6 3
      src/GdkDNDEvent.def
  14. 67 38
      src/GdkDevice.def
  15. 22 9
      src/GdkDevicePad.def
  16. 15 9
      src/GdkDeviceTool.def
  17. 114 56
      src/GdkDisplay.def
  18. 28 11
      src/GdkDisplayManager.def
  19. 30 12
      src/GdkDmabufFormats.def
  20. 147 57
      src/GdkDmabufTextureBuilder.def
  21. 38 21
      src/GdkDrag.def
  22. 7 3
      src/GdkDragSurface.def
  23. 6 2
      src/GdkDragSurfaceSize.def
  24. 20 11
      src/GdkDrawContext.def
  25. 40 22
      src/GdkDrop.def
  26. 6 1
      src/GdkEnums.def
  27. 57 34
      src/GdkEvent.def
  28. 13 7
      src/GdkFileList.def
  29. 7 3
      src/GdkFocusEvent.def
  30. 32 17
      src/GdkFrameClock.def
  31. 30 16
      src/GdkFrameTimings.def
  32. 153 57
      src/GdkFunctions.def
  33. 15 4
      src/GdkGLTexture.def
  34. 100 45
      src/GdkGLTextureBuilder.def
  35. 11 5
      src/GdkGrabBrokenEvent.def
  36. 36 17
      src/GdkKeyEvent.def
  37. 10 3
      src/GdkMemoryTexture.def
  38. 86 37
      src/GdkMemoryTextureBuilder.def
  39. 43 26
      src/GdkMonitor.def
  40. 18 7
      src/GdkPadEvent.def
  41. 55 19
      src/GdkPaintable.def
  42. 26 15
      src/GdkPopup.def
  43. 45 26
      src/GdkPopupLayout.def
  44. 20 13
      src/GdkRectangle.def
  45. 14 8
      src/GdkScrollEvent.def
  46. 21 13
      src/GdkSeat.def
  47. 75 46
      src/GdkSurface.def
  48. 31 18
      src/GdkTextureDownloader.def
  49. 47 26
      src/GdkToplevel.def
  50. 35 21
      src/GdkToplevelLayout.def
  51. 11 5
      src/GdkToplevelSize.def
  52. 6 3
      src/GdkTouchEvent.def
  53. 17 10
      src/GdkTouchpadEvent.def
  54. 15 9
      src/GskBlendNode.def
  55. 12 7
      src/GskBlurNode.def
  56. 15 9
      src/GskBorderNode.def
  57. 6 3
      src/GskBroadwayRenderer.def
  58. 12 7
      src/GskCairoNode.def
  59. 6 3
      src/GskCairoRenderer.def
  60. 12 7
      src/GskClipNode.def
  61. 15 9
      src/GskColorMatrixNode.def
  62. 9 5
      src/GskColorNode.def
  63. 20 12
      src/GskConicGradientNode.def
  64. 12 7
      src/GskContainerNode.def
  65. 15 9
      src/GskCrossFadeNode.def
  66. 11 7
      src/GskDebugNode.def
  67. 35 1
      src/GskEnums.def
  68. 14 9
      src/GskFillNode.def
  69. 12 7
      src/GskFunctions.def
  70. 5 3
      src/GskGLRenderer.def
  71. 59 38
      src/GskGLShader.def
  72. 17 11
      src/GskGLShaderNode.def
  73. 23 15
      src/GskInsetShadowNode.def
  74. 16 10
      src/GskLinearGradientNode.def
  75. 14 9
      src/GskMaskNode.def
  76. 5 3
      src/GskNglRenderer.def
  77. 11 7
      src/GskOpacityNode.def
  78. 17 15
      src/GskOutsetShadowNode.def
  79. 30 28
      src/GskPath.def
  80. 40 38
      src/GskPathBuilder.def
  81. 18 16
      src/GskPathMeasure.def
  82. 18 16
      src/GskPathPoint.def
  83. 18 16
      src/GskRadialGradientNode.def
  84. 18 16
      src/GskRenderNode.def
  85. 17 15
      src/GskRenderer.def
  86. 9 7
      src/GskRepeatNode.def
  87. 5 3
      src/GskRepeatingLinearGradientNode.def
  88. 5 3
      src/GskRepeatingRadialGradientNode.def
  89. 9 7
      src/GskRoundedClipNode.def
  90. 33 21
      src/GskRoundedRect.def
  91. 31 17
      src/GskShaderArgsBuilder.def
  92. 15 9
      src/GskShadowNode.def
  93. 45 26
      src/GskStroke.def
  94. 15 9
      src/GskStrokeNode.def
  95. 12 7
      src/GskSubsurfaceNode.def
  96. 23 14
      src/GskTextNode.def
  97. 9 5
      src/GskTextureNode.def
  98. 12 7
      src/GskTextureScaleNode.def
  99. 72 44
      src/GskTransform.def
  100. 12 7
      src/GskTransformNode.def

+ 5 - 6
README.md

@@ -23,9 +23,8 @@ Verified with `gm2` 16.0.1 (experimental), GTK 4.18.6 and libadwaita 1.7.6.
   (libadwaita) widget set** — every `Adw*` class — the **GtkSourceView 5**
   code-editor widgets, **full Gdk/Gsk coverage**, and the libspelling /
   libpanel platform libraries.
-  Most modules are hand-written; the large Gdk/Gsk (and the Panel/Gdk
-  record) namespaces are generated by `tools/gir2def.py` and verified
-  against the installed libraries.
+  All of these are hand-written modules; the generator output (kept in
+  `gen/`, git-ignored) is the broad-coverage companion.
 - **Pure-Modula-2 helpers**: `GtkUtils` (string/number conversion,
   `Connect`, `SetAccel`, ownership and `GError` helpers) and
   `GtkClosures` (per-connection signal contexts with cleanup).
@@ -300,9 +299,9 @@ make demos
 | `Gdk*` (~58) | displays, monitors, seats, devices, events, surfaces, toplevels/popups, cursors, drag-and-drop, clips, content (de)serialization, textures and draw contexts, Cairo/GL/Vulkan contexts, frame clocks, `RGBA`/`Rectangle` value types, `GdkEnums`, `GdkFunctions` |
 | `Gsk*` (~48) | render nodes (container, cairo, color, text, texture, transform, shadow, …), renderers, transforms, rounded/clip/path/shadow helpers, GL shaders, `GskEnums`, `GskFunctions` |
 
-These namespace modules are produced by `tools/gir2def.py` (the same
-generator the verifier checks) and are complete: every `Gdk*`/`Gsk*`
-class/interface/record plus the namespace functions and enums.
+These namespace modules are hand-curated (the parallel to the rest of
+`src/`). They are complete: every `Gdk*`/`Gsk*` class/interface/record
+plus the namespace functions and enums.
 
 ### libspelling / libpanel
 

+ 28 - 11
src/GdkAppLaunchContext.def

@@ -1,6 +1,10 @@
 DEFINITION MODULE FOR "C" GdkAppLaunchContext ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkAppLaunchContext: the launch context used by
+   g_app_info_launch() on a display.  Mapped onto
+   <gdk/gdkapplaunchcontext.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,15 +19,28 @@ EXPORT UNQUALIFIED
 TYPE
    GdkAppLaunchContext = ADDRESS;
 
-(* gdk_app_launch_context_get_display *)
-PROCEDURE gdk_app_launch_context_get_display (context: GdkAppLaunchContext) : [ ADDRESS ];
-(* gdk_app_launch_context_set_desktop *)
-PROCEDURE gdk_app_launch_context_set_desktop (context: GdkAppLaunchContext; desktop: INTEGER);
-(* gdk_app_launch_context_set_icon *)
-PROCEDURE gdk_app_launch_context_set_icon (context: GdkAppLaunchContext; icon: ADDRESS);
-(* gdk_app_launch_context_set_icon_name *)
-PROCEDURE gdk_app_launch_context_set_icon_name (context: GdkAppLaunchContext; icon_name: ARRAY OF CHAR);
-(* gdk_app_launch_context_set_timestamp *)
-PROCEDURE gdk_app_launch_context_set_timestamp (context: GdkAppLaunchContext; timestamp: CARDINAL);
+(* GdkDisplay *gdk_app_launch_context_get_display(GdkAppLaunchContext *context) *)
+PROCEDURE gdk_app_launch_context_get_display (context: GdkAppLaunchContext)
+                                              : ADDRESS;
+
+(* void gdk_app_launch_context_set_desktop(GdkAppLaunchContext *context,
+                                            gint desktop) *)
+PROCEDURE gdk_app_launch_context_set_desktop (context: GdkAppLaunchContext;
+                                              desktop: INTEGER);
+
+(* void gdk_app_launch_context_set_icon(GdkAppLaunchContext *context,
+                                         GIcon *icon) *)
+PROCEDURE gdk_app_launch_context_set_icon (context: GdkAppLaunchContext;
+                                           icon: ADDRESS);
+
+(* void gdk_app_launch_context_set_icon_name(GdkAppLaunchContext *context,
+                                              const char *icon_name) *)
+PROCEDURE gdk_app_launch_context_set_icon_name (context: GdkAppLaunchContext;
+                                                icon_name: ARRAY OF CHAR);
+
+(* void gdk_app_launch_context_set_timestamp(GdkAppLaunchContext *context,
+                                              guint32 timestamp) *)
+PROCEDURE gdk_app_launch_context_set_timestamp (context: GdkAppLaunchContext;
+                                                timestamp: CARDINAL);
 
 END GdkAppLaunchContext.

+ 6 - 3
src/GdkButtonEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkButtonEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkButtonEvent: a button-press/release event.  Mapped onto
+   <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GdkButtonEvent = ADDRESS;
 
-(* gdk_button_event_get_button *)
-PROCEDURE gdk_button_event_get_button (event: GdkButtonEvent) : [ CARDINAL ];
+(* guint gdk_button_event_get_button(GdkButtonEvent *event) *)
+PROCEDURE gdk_button_event_get_button (event: GdkButtonEvent) : CARDINAL;
 
 END GdkButtonEvent.

+ 6 - 3
src/GdkCairoContext.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkCairoContext ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkCairoContext: a Cairo drawing context for a surface.
+   Mapped onto <gdk/gdkcairocontext.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GdkCairoContext = ADDRESS;
 
-(* gdk_cairo_context_cairo_create *)
-PROCEDURE gdk_cairo_context_cairo_create (self: GdkCairoContext) : [ ADDRESS ];
+(* cairo_t *gdk_cairo_context_cairo_create(GdkCairoContext *self) *)
+PROCEDURE gdk_cairo_context_cairo_create (self: GdkCairoContext) : ADDRESS;
 
 END GdkCairoContext.

+ 46 - 25
src/GdkCicpParams.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkCicpParams ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkCicpParams: a builder for CICP color-state parameters.
+   Mapped onto <gdk/gdkcicpparams.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -9,36 +12,54 @@ EXPORT UNQUALIFIED
    gdk_cicp_params_new,
    gdk_cicp_params_build_color_state,
    gdk_cicp_params_get_color_primaries,
-   gdk_cicp_params_get_matrix_coefficients,
-   gdk_cicp_params_get_range,
-   gdk_cicp_params_get_transfer_function,
    gdk_cicp_params_set_color_primaries,
+   gdk_cicp_params_get_transfer_function,
+   gdk_cicp_params_set_transfer_function,
+   gdk_cicp_params_get_matrix_coefficients,
    gdk_cicp_params_set_matrix_coefficients,
-   gdk_cicp_params_set_range,
-   gdk_cicp_params_set_transfer_function;
+   gdk_cicp_params_get_range,
+   gdk_cicp_params_set_range;
 
 TYPE
    GdkCicpParams = ADDRESS;
 
-(* gdk_cicp_params_new *)
-PROCEDURE gdk_cicp_params_new () : [ ADDRESS ];
-(* gdk_cicp_params_build_color_state *)
-PROCEDURE gdk_cicp_params_build_color_state (self: GdkCicpParams) : [ ADDRESS ];
-(* gdk_cicp_params_get_color_primaries *)
-PROCEDURE gdk_cicp_params_get_color_primaries (self: GdkCicpParams) : [ CARDINAL ];
-(* gdk_cicp_params_get_matrix_coefficients *)
-PROCEDURE gdk_cicp_params_get_matrix_coefficients (self: GdkCicpParams) : [ CARDINAL ];
-(* gdk_cicp_params_get_range *)
-PROCEDURE gdk_cicp_params_get_range (self: GdkCicpParams) : [ CARDINAL ];
-(* gdk_cicp_params_get_transfer_function *)
-PROCEDURE gdk_cicp_params_get_transfer_function (self: GdkCicpParams) : [ CARDINAL ];
-(* gdk_cicp_params_set_color_primaries *)
-PROCEDURE gdk_cicp_params_set_color_primaries (self: GdkCicpParams; color_primaries: CARDINAL);
-(* gdk_cicp_params_set_matrix_coefficients *)
-PROCEDURE gdk_cicp_params_set_matrix_coefficients (self: GdkCicpParams; matrix_coefficients: CARDINAL);
-(* gdk_cicp_params_set_range *)
+(* GdkCicpParams *gdk_cicp_params_new(void) *)
+PROCEDURE gdk_cicp_params_new () : GdkCicpParams;
+
+(* GdkColorState *gdk_cicp_params_build_color_state(GdkCicpParams *self) *)
+PROCEDURE gdk_cicp_params_build_color_state (self: GdkCicpParams) : ADDRESS;
+
+(* guint gdk_cicp_params_get_color_primaries(GdkCicpParams *self) *)
+PROCEDURE gdk_cicp_params_get_color_primaries (self: GdkCicpParams)
+                                               : CARDINAL;
+
+(* void gdk_cicp_params_set_color_primaries(GdkCicpParams *self,
+                                            guint primaries) *)
+PROCEDURE gdk_cicp_params_set_color_primaries (self: GdkCicpParams;
+                                               color_primaries: CARDINAL);
+
+(* guint gdk_cicp_params_get_transfer_function(GdkCicpParams *self) *)
+PROCEDURE gdk_cicp_params_get_transfer_function (self: GdkCicpParams)
+                                                 : CARDINAL;
+
+(* void gdk_cicp_params_set_transfer_function(GdkCicpParams *self,
+                                              guint function) *)
+PROCEDURE gdk_cicp_params_set_transfer_function (self: GdkCicpParams;
+                                                 transfer_function: CARDINAL);
+
+(* guint gdk_cicp_params_get_matrix_coefficients(GdkCicpParams *self) *)
+PROCEDURE gdk_cicp_params_get_matrix_coefficients (self: GdkCicpParams)
+                                                   : CARDINAL;
+
+(* void gdk_cicp_params_set_matrix_coefficients(GdkCicpParams *self,
+                                                guint coefficients) *)
+PROCEDURE gdk_cicp_params_set_matrix_coefficients (self: GdkCicpParams;
+                                                   matrix_coefficients: CARDINAL);
+
+(* guint gdk_cicp_params_get_range(GdkCicpParams *self) *)
+PROCEDURE gdk_cicp_params_get_range (self: GdkCicpParams) : CARDINAL;
+
+(* void gdk_cicp_params_set_range(GdkCicpParams *self, guint range) *)
 PROCEDURE gdk_cicp_params_set_range (self: GdkCicpParams; range: CARDINAL);
-(* gdk_cicp_params_set_transfer_function *)
-PROCEDURE gdk_cicp_params_set_transfer_function (self: GdkCicpParams; transfer_function: CARDINAL);
 
 END GdkCicpParams.

+ 27 - 29
src/GdkColorState.def

@@ -1,44 +1,42 @@
 DEFINITION MODULE FOR "C" GdkColorState ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkColorState: an immutable color-space description.
+   Mapped onto <gdk/gdkcolorstate.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
 EXPORT UNQUALIFIED
    GdkColorState,
+   gdk_color_state_ref, gdk_color_state_unref, gdk_color_state_equal,
    gdk_color_state_create_cicp_params,
-   gdk_color_state_equal,
-   gdk_color_state_ref,
-   gdk_color_state_unref,
-   gdk_color_state_get_oklab,
-   gdk_color_state_get_oklch,
-   gdk_color_state_get_rec2100_linear,
-   gdk_color_state_get_rec2100_pq,
-   gdk_color_state_get_srgb,
-   gdk_color_state_get_srgb_linear;
+   gdk_color_state_get_srgb, gdk_color_state_get_srgb_linear,
+   gdk_color_state_get_rec2100_linear, gdk_color_state_get_rec2100_pq,
+   gdk_color_state_get_oklab, gdk_color_state_get_oklch;
 
 TYPE
    GdkColorState = ADDRESS;
 
-(* gdk_color_state_create_cicp_params *)
-PROCEDURE gdk_color_state_create_cicp_params (self: GdkColorState) : [ ADDRESS ];
-(* gdk_color_state_equal *)
-PROCEDURE gdk_color_state_equal (self: GdkColorState; other: GdkColorState) : [ INTEGER ];
-(* gdk_color_state_ref *)
-PROCEDURE gdk_color_state_ref (self: GdkColorState) : [ ADDRESS ];
-(* gdk_color_state_unref *)
+(* GdkColorState *gdk_color_state_ref(GdkColorState *self) *)
+PROCEDURE gdk_color_state_ref (self: GdkColorState) : ADDRESS;
+(* void gdk_color_state_unref(GdkColorState *self) *)
 PROCEDURE gdk_color_state_unref (self: GdkColorState);
-(* gdk_color_state_get_oklab *)
-PROCEDURE gdk_color_state_get_oklab () : [ ADDRESS ];
-(* gdk_color_state_get_oklch *)
-PROCEDURE gdk_color_state_get_oklch () : [ ADDRESS ];
-(* gdk_color_state_get_rec2100_linear *)
-PROCEDURE gdk_color_state_get_rec2100_linear () : [ ADDRESS ];
-(* gdk_color_state_get_rec2100_pq *)
-PROCEDURE gdk_color_state_get_rec2100_pq () : [ ADDRESS ];
-(* gdk_color_state_get_srgb *)
-PROCEDURE gdk_color_state_get_srgb () : [ ADDRESS ];
-(* gdk_color_state_get_srgb_linear *)
-PROCEDURE gdk_color_state_get_srgb_linear () : [ ADDRESS ];
+(* gboolean gdk_color_state_equal(GdkColorState *self, GdkColorState *other) *)
+PROCEDURE gdk_color_state_equal (self, other: GdkColorState) : INTEGER;
+(* GdkCicpParams *gdk_color_state_create_cicp_params(GdkColorState *self) *)
+PROCEDURE gdk_color_state_create_cicp_params (self: GdkColorState) : ADDRESS;
+(* GdkColorState *gdk_color_state_get_srgb(void) *)
+PROCEDURE gdk_color_state_get_srgb () : ADDRESS;
+(* GdkColorState *gdk_color_state_get_srgb_linear(void) *)
+PROCEDURE gdk_color_state_get_srgb_linear () : ADDRESS;
+(* GdkColorState *gdk_color_state_get_rec2100_linear(void) *)
+PROCEDURE gdk_color_state_get_rec2100_linear () : ADDRESS;
+(* GdkColorState *gdk_color_state_get_rec2100_pq(void) *)
+PROCEDURE gdk_color_state_get_rec2100_pq () : ADDRESS;
+(* GdkColorState *gdk_color_state_get_oklab(void) *)
+PROCEDURE gdk_color_state_get_oklab () : ADDRESS;
+(* GdkColorState *gdk_color_state_get_oklch(void) *)
+PROCEDURE gdk_color_state_get_oklch () : ADDRESS;
 
 END GdkColorState.

+ 53 - 29
src/GdkContentDeserializer.def

@@ -1,47 +1,71 @@
 DEFINITION MODULE FOR "C" GdkContentDeserializer ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkContentDeserializer: deserializes clipboard/DND content
+   into a GValue.  Mapped onto <gdk/gdkcontentdeserializer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
 EXPORT UNQUALIFIED
    GdkContentDeserializer,
-   gdk_content_deserializer_get_cancellable,
    gdk_content_deserializer_get_gtype,
+   gdk_content_deserializer_get_value,
+   gdk_content_deserializer_get_priority,
+   gdk_content_deserializer_get_cancellable,
    gdk_content_deserializer_get_input_stream,
    gdk_content_deserializer_get_mime_type,
-   gdk_content_deserializer_get_priority,
-   gdk_content_deserializer_get_task_data,
    gdk_content_deserializer_get_user_data,
-   gdk_content_deserializer_get_value,
-   gdk_content_deserializer_return_error,
+   gdk_content_deserializer_get_task_data,
+   gdk_content_deserializer_set_task_data,
    gdk_content_deserializer_return_success,
-   gdk_content_deserializer_set_task_data;
+   gdk_content_deserializer_return_error;
 
 TYPE
    GdkContentDeserializer = ADDRESS;
 
-(* gdk_content_deserializer_get_cancellable *)
-PROCEDURE gdk_content_deserializer_get_cancellable (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_get_gtype *)
-PROCEDURE gdk_content_deserializer_get_gtype (deserializer: GdkContentDeserializer) : [ LONGCARD ];
-(* gdk_content_deserializer_get_input_stream *)
-PROCEDURE gdk_content_deserializer_get_input_stream (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_get_mime_type *)
-PROCEDURE gdk_content_deserializer_get_mime_type (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_get_priority *)
-PROCEDURE gdk_content_deserializer_get_priority (deserializer: GdkContentDeserializer) : [ INTEGER ];
-(* gdk_content_deserializer_get_task_data *)
-PROCEDURE gdk_content_deserializer_get_task_data (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_get_user_data *)
-PROCEDURE gdk_content_deserializer_get_user_data (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_get_value *)
-PROCEDURE gdk_content_deserializer_get_value (deserializer: GdkContentDeserializer) : [ ADDRESS ];
-(* gdk_content_deserializer_return_error *)
-PROCEDURE gdk_content_deserializer_return_error (deserializer: GdkContentDeserializer);
-(* gdk_content_deserializer_return_success *)
-PROCEDURE gdk_content_deserializer_return_success (deserializer: GdkContentDeserializer);
-(* gdk_content_deserializer_set_task_data *)
-PROCEDURE gdk_content_deserializer_set_task_data (deserializer: GdkContentDeserializer; data: ADDRESS; notify: ADDRESS);
+(* GType gdk_content_deserializer_get_gtype(GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_gtype
+              (deserializer: GdkContentDeserializer) : LONGCARD;
+(* GValue *gdk_content_deserializer_get_value(GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_value
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* int gdk_content_deserializer_get_priority(GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_priority
+              (deserializer: GdkContentDeserializer) : INTEGER;
+(* GCancellable *gdk_content_deserializer_get_cancellable(
+                    GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_cancellable
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* GInputStream *gdk_content_deserializer_get_input_stream(
+                    GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_input_stream
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* const char *gdk_content_deserializer_get_mime_type(
+                GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_mime_type
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* gpointer gdk_content_deserializer_get_user_data(
+             GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_user_data
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* gpointer gdk_content_deserializer_get_task_data(
+             GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_get_task_data
+              (deserializer: GdkContentDeserializer) : ADDRESS;
+(* void gdk_content_deserializer_set_task_data(
+          GdkContentDeserializer *deserializer, gpointer data,
+          GDestroyNotify notify) *)
+PROCEDURE gdk_content_deserializer_set_task_data
+              (deserializer: GdkContentDeserializer; data: ADDRESS;
+               notify: ADDRESS);
+(* void gdk_content_deserializer_return_success(
+          GdkContentDeserializer *deserializer) *)
+PROCEDURE gdk_content_deserializer_return_success
+              (deserializer: GdkContentDeserializer);
+(* void gdk_content_deserializer_return_error(
+          GdkContentDeserializer *deserializer, GError *error) *)
+PROCEDURE gdk_content_deserializer_return_error
+              (deserializer: GdkContentDeserializer; error: ADDRESS);
 
 END GdkContentDeserializer.

+ 80 - 55
src/GdkContentFormats.def

@@ -1,74 +1,99 @@
 DEFINITION MODULE FOR "C" GdkContentFormats ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkContentFormats: the set of formats content is offered in.
+   Mapped onto <gdk/gdkcontentformats.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
 EXPORT UNQUALIFIED
    GdkContentFormats,
-   gdk_content_formats_new,
-   gdk_content_formats_new_for_gtype,
+   gdk_content_formats_new, gdk_content_formats_new_for_gtype,
+   gdk_content_formats_parse,
+   gdk_content_formats_ref, gdk_content_formats_unref,
+   gdk_content_formats_get_gtypes, gdk_content_formats_get_mime_types,
    gdk_content_formats_contain_gtype,
    gdk_content_formats_contain_mime_type,
-   gdk_content_formats_get_gtypes,
-   gdk_content_formats_get_mime_types,
-   gdk_content_formats_is_empty,
-   gdk_content_formats_match,
-   gdk_content_formats_match_gtype,
-   gdk_content_formats_match_mime_type,
-   gdk_content_formats_print,
-   gdk_content_formats_ref,
-   gdk_content_formats_to_string,
+   gdk_content_formats_match, gdk_content_formats_match_gtype,
+   gdk_content_formats_match_mime_type, gdk_content_formats_is_empty,
    gdk_content_formats_union,
-   gdk_content_formats_union_deserialize_gtypes,
-   gdk_content_formats_union_deserialize_mime_types,
    gdk_content_formats_union_serialize_gtypes,
    gdk_content_formats_union_serialize_mime_types,
-   gdk_content_formats_unref,
-   gdk_content_formats_parse;
+   gdk_content_formats_union_deserialize_gtypes,
+   gdk_content_formats_union_deserialize_mime_types,
+   gdk_content_formats_print, gdk_content_formats_to_string;
 
 TYPE
    GdkContentFormats = ADDRESS;
 
-(* gdk_content_formats_new *)
-PROCEDURE gdk_content_formats_new (mime_types: ADDRESS) : [ ADDRESS ];
-(* gdk_content_formats_new_for_gtype *)
-PROCEDURE gdk_content_formats_new_for_gtype (type_: LONGCARD) : [ ADDRESS ];
-(* gdk_content_formats_contain_gtype *)
-PROCEDURE gdk_content_formats_contain_gtype (formats: GdkContentFormats; type_: LONGCARD) : [ INTEGER ];
-(* gdk_content_formats_contain_mime_type *)
-PROCEDURE gdk_content_formats_contain_mime_type (formats: GdkContentFormats; mime_type: ARRAY OF CHAR) : [ INTEGER ];
-(* gdk_content_formats_get_gtypes *)
-PROCEDURE gdk_content_formats_get_gtypes (formats: GdkContentFormats; VAR n_gtypes: LONGCARD);
-(* gdk_content_formats_get_mime_types *)
-PROCEDURE gdk_content_formats_get_mime_types (formats: GdkContentFormats; VAR n_mime_types: LONGCARD);
-(* gdk_content_formats_is_empty *)
-PROCEDURE gdk_content_formats_is_empty (formats: GdkContentFormats) : [ INTEGER ];
-(* gdk_content_formats_match *)
-PROCEDURE gdk_content_formats_match (first: GdkContentFormats; second: GdkContentFormats) : [ INTEGER ];
-(* gdk_content_formats_match_gtype *)
-PROCEDURE gdk_content_formats_match_gtype (first: GdkContentFormats; second: GdkContentFormats) : [ LONGCARD ];
-(* gdk_content_formats_match_mime_type *)
-PROCEDURE gdk_content_formats_match_mime_type (first: GdkContentFormats; second: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_print *)
-PROCEDURE gdk_content_formats_print (formats: GdkContentFormats; string: ADDRESS);
-(* gdk_content_formats_ref *)
-PROCEDURE gdk_content_formats_ref (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_to_string *)
-PROCEDURE gdk_content_formats_to_string (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_union *)
-PROCEDURE gdk_content_formats_union (first: GdkContentFormats; second: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_union_deserialize_gtypes *)
-PROCEDURE gdk_content_formats_union_deserialize_gtypes (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_union_deserialize_mime_types *)
-PROCEDURE gdk_content_formats_union_deserialize_mime_types (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_union_serialize_gtypes *)
-PROCEDURE gdk_content_formats_union_serialize_gtypes (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_union_serialize_mime_types *)
-PROCEDURE gdk_content_formats_union_serialize_mime_types (formats: GdkContentFormats) : [ ADDRESS ];
-(* gdk_content_formats_unref *)
+(* GdkContentFormats *gdk_content_formats_new(const char * const *mime_types) *)
+PROCEDURE gdk_content_formats_new (mime_types: ADDRESS) : GdkContentFormats;
+(* GdkContentFormats *gdk_content_formats_new_for_gtype(GType type) *)
+PROCEDURE gdk_content_formats_new_for_gtype (theType: LONGCARD) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_parse(const char *string) *)
+PROCEDURE gdk_content_formats_parse (string: ARRAY OF CHAR) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_ref(GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_ref (formats: GdkContentFormats) : ADDRESS;
+(* void gdk_content_formats_unref(GdkContentFormats *formats) *)
 PROCEDURE gdk_content_formats_unref (formats: GdkContentFormats);
-(* gdk_content_formats_parse *)
-PROCEDURE gdk_content_formats_parse (string: ARRAY OF CHAR) : [ ADDRESS ];
+(* const GType *gdk_content_formats_get_gtypes(GdkContentFormats *formats,
+                                                gsize *n_gtypes) *)
+PROCEDURE gdk_content_formats_get_gtypes (formats: GdkContentFormats;
+                                          VAR n_gtypes: LONGCARD) : ADDRESS;
+(* const char * const *gdk_content_formats_get_mime_types(
+                        GdkContentFormats *formats, gsize *n_mime_types) *)
+PROCEDURE gdk_content_formats_get_mime_types (formats: GdkContentFormats;
+                                              VAR n_mime_types: LONGCARD)
+                                             : ADDRESS;
+(* gboolean gdk_content_formats_contain_gtype(GdkContentFormats *formats,
+                                              GType type) *)
+PROCEDURE gdk_content_formats_contain_gtype (formats: GdkContentFormats;
+                                             theType: LONGCARD) : INTEGER;
+(* gboolean gdk_content_formats_contain_mime_type(
+              GdkContentFormats *formats, const char *mime_type) *)
+PROCEDURE gdk_content_formats_contain_mime_type
+              (formats: GdkContentFormats; mime_type: ARRAY OF CHAR) : INTEGER;
+(* gboolean gdk_content_formats_match(GdkContentFormats *first,
+                                      GdkContentFormats *second) *)
+PROCEDURE gdk_content_formats_match (first, second: GdkContentFormats)
+                                     : INTEGER;
+(* GType gdk_content_formats_match_gtype(GdkContentFormats *first,
+                                         GdkContentFormats *second) *)
+PROCEDURE gdk_content_formats_match_gtype (first, second: GdkContentFormats)
+                                           : LONGCARD;
+(* const char *gdk_content_formats_match_mime_type(GdkContentFormats *first,
+                                                    GdkContentFormats *second) *)
+PROCEDURE gdk_content_formats_match_mime_type
+              (first, second: GdkContentFormats) : ADDRESS;
+(* gboolean gdk_content_formats_is_empty(GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_is_empty (formats: GdkContentFormats) : INTEGER;
+(* GdkContentFormats *gdk_content_formats_union(GdkContentFormats *first,
+                                                GdkContentFormats *second) *)
+PROCEDURE gdk_content_formats_union (first, second: GdkContentFormats)
+                                     : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_union_serialize_gtypes(
+                       GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_union_serialize_gtypes
+              (formats: GdkContentFormats) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_union_serialize_mime_types(
+                       GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_union_serialize_mime_types
+              (formats: GdkContentFormats) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_union_deserialize_gtypes(
+                       GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_union_deserialize_gtypes
+              (formats: GdkContentFormats) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_union_deserialize_mime_types(
+                       GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_union_deserialize_mime_types
+              (formats: GdkContentFormats) : ADDRESS;
+(* void gdk_content_formats_print(GdkContentFormats *formats,
+                                  GString *string) *)
+PROCEDURE gdk_content_formats_print (formats: GdkContentFormats;
+                                     string: ADDRESS);
+(* char *gdk_content_formats_to_string(GdkContentFormats *formats) *)
+PROCEDURE gdk_content_formats_to_string (formats: GdkContentFormats)
+                                         : ADDRESS;
 
 END GdkContentFormats.

+ 28 - 18
src/GdkContentFormatsBuilder.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkContentFormatsBuilder ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkContentFormatsBuilder: incrementally builds a
+   GdkContentFormats.  Mapped onto <gdk/gdkcontentformats.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -10,29 +13,36 @@ EXPORT UNQUALIFIED
    gdk_content_formats_builder_add_formats,
    gdk_content_formats_builder_add_gtype,
    gdk_content_formats_builder_add_mime_type,
+   gdk_content_formats_builder_to_formats,
    gdk_content_formats_builder_free_to_formats,
    gdk_content_formats_builder_ref,
-   gdk_content_formats_builder_to_formats,
    gdk_content_formats_builder_unref;
 
 TYPE
    GdkContentFormatsBuilder = ADDRESS;
 
-(* gdk_content_formats_builder_new *)
-PROCEDURE gdk_content_formats_builder_new () : [ ADDRESS ];
-(* gdk_content_formats_builder_add_formats *)
-PROCEDURE gdk_content_formats_builder_add_formats (builder: GdkContentFormatsBuilder; formats: ADDRESS);
-(* gdk_content_formats_builder_add_gtype *)
-PROCEDURE gdk_content_formats_builder_add_gtype (builder: GdkContentFormatsBuilder; type_: LONGCARD);
-(* gdk_content_formats_builder_add_mime_type *)
-PROCEDURE gdk_content_formats_builder_add_mime_type (builder: GdkContentFormatsBuilder; mime_type: ARRAY OF CHAR);
-(* gdk_content_formats_builder_free_to_formats *)
-PROCEDURE gdk_content_formats_builder_free_to_formats (builder: GdkContentFormatsBuilder) : [ ADDRESS ];
-(* gdk_content_formats_builder_ref *)
-PROCEDURE gdk_content_formats_builder_ref (builder: GdkContentFormatsBuilder) : [ ADDRESS ];
-(* gdk_content_formats_builder_to_formats *)
-PROCEDURE gdk_content_formats_builder_to_formats (builder: GdkContentFormatsBuilder) : [ ADDRESS ];
-(* gdk_content_formats_builder_unref *)
-PROCEDURE gdk_content_formats_builder_unref (builder: GdkContentFormatsBuilder);
+(* GdkContentFormatsBuilder *gdk_content_formats_builder_new(void) *)
+PROCEDURE gdk_content_formats_builder_new () : GdkContentFormatsBuilder;
+(* void gdk_content_formats_builder_add_formats(builder, formats) *)
+PROCEDURE gdk_content_formats_builder_add_formats
+              (builder: GdkContentFormatsBuilder; formats: ADDRESS);
+(* void gdk_content_formats_builder_add_gtype(builder, GType type) *)
+PROCEDURE gdk_content_formats_builder_add_gtype
+              (builder: GdkContentFormatsBuilder; theType: LONGCARD);
+(* void gdk_content_formats_builder_add_mime_type(builder, const char *m) *)
+PROCEDURE gdk_content_formats_builder_add_mime_type
+              (builder: GdkContentFormatsBuilder; mime_type: ARRAY OF CHAR);
+(* GdkContentFormats *gdk_content_formats_builder_to_formats(builder) *)
+PROCEDURE gdk_content_formats_builder_to_formats
+              (builder: GdkContentFormatsBuilder) : ADDRESS;
+(* GdkContentFormats *gdk_content_formats_builder_free_to_formats(builder) *)
+PROCEDURE gdk_content_formats_builder_free_to_formats
+              (builder: GdkContentFormatsBuilder) : ADDRESS;
+(* GdkContentFormatsBuilder *gdk_content_formats_builder_ref(builder) *)
+PROCEDURE gdk_content_formats_builder_ref
+              (builder: GdkContentFormatsBuilder) : ADDRESS;
+(* void gdk_content_formats_builder_unref(builder) *)
+PROCEDURE gdk_content_formats_builder_unref
+              (builder: GdkContentFormatsBuilder);
 
 END GdkContentFormatsBuilder.

+ 57 - 23
src/GdkContentSerializer.def

@@ -1,6 +1,10 @@
 DEFINITION MODULE FOR "C" GdkContentSerializer ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkContentSerializer: serializes content during a clipboard
+   or drag-and-drop transfer.  Mapped onto
+   <gdk/gdkcontentserializer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -21,27 +25,57 @@ EXPORT UNQUALIFIED
 TYPE
    GdkContentSerializer = ADDRESS;
 
-(* gdk_content_serializer_get_cancellable *)
-PROCEDURE gdk_content_serializer_get_cancellable (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_get_gtype *)
-PROCEDURE gdk_content_serializer_get_gtype (serializer: GdkContentSerializer) : [ LONGCARD ];
-(* gdk_content_serializer_get_mime_type *)
-PROCEDURE gdk_content_serializer_get_mime_type (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_get_output_stream *)
-PROCEDURE gdk_content_serializer_get_output_stream (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_get_priority *)
-PROCEDURE gdk_content_serializer_get_priority (serializer: GdkContentSerializer) : [ INTEGER ];
-(* gdk_content_serializer_get_task_data *)
-PROCEDURE gdk_content_serializer_get_task_data (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_get_user_data *)
-PROCEDURE gdk_content_serializer_get_user_data (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_get_value *)
-PROCEDURE gdk_content_serializer_get_value (serializer: GdkContentSerializer) : [ ADDRESS ];
-(* gdk_content_serializer_return_error *)
-PROCEDURE gdk_content_serializer_return_error (serializer: GdkContentSerializer);
-(* gdk_content_serializer_return_success *)
-PROCEDURE gdk_content_serializer_return_success (serializer: GdkContentSerializer);
-(* gdk_content_serializer_set_task_data *)
-PROCEDURE gdk_content_serializer_set_task_data (serializer: GdkContentSerializer; data: ADDRESS; notify: ADDRESS);
+(* GCancellable *gdk_content_serializer_get_cancellable(
+                    GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_cancellable
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* GType gdk_content_serializer_get_gtype(GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_gtype
+              (serializer: GdkContentSerializer) : LONGCARD;
+
+(* const char *gdk_content_serializer_get_mime_type(
+                GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_mime_type
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* GOutputStream *gdk_content_serializer_get_output_stream(
+                   GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_output_stream
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* int gdk_content_serializer_get_priority(GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_priority
+              (serializer: GdkContentSerializer) : INTEGER;
+
+(* gpointer gdk_content_serializer_get_task_data(
+              GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_task_data
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* gpointer gdk_content_serializer_get_user_data(
+              GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_user_data
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* const GValue *gdk_content_serializer_get_value(
+                   GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_get_value
+              (serializer: GdkContentSerializer) : ADDRESS;
+
+(* void gdk_content_serializer_return_error(GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_return_error
+              (serializer: GdkContentSerializer);
+
+(* void gdk_content_serializer_return_success(GdkContentSerializer *serializer) *)
+PROCEDURE gdk_content_serializer_return_success
+              (serializer: GdkContentSerializer);
+
+(* void gdk_content_serializer_set_task_data(GdkContentSerializer *serializer,
+                                             gpointer data,
+                                             GDestroyNotify notify) *)
+PROCEDURE gdk_content_serializer_set_task_data
+              (serializer: GdkContentSerializer; data: ADDRESS;
+               notify: ADDRESS);
 
 END GdkContentSerializer.

+ 12 - 7
src/GdkCrossingEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkCrossingEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkCrossingEvent: an event describing pointer movement into
+   or out of a surface.  Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GdkCrossingEvent = ADDRESS;
 
-(* gdk_crossing_event_get_detail *)
-PROCEDURE gdk_crossing_event_get_detail (event: GdkCrossingEvent) : [ CARDINAL ];
-(* gdk_crossing_event_get_focus *)
-PROCEDURE gdk_crossing_event_get_focus (event: GdkCrossingEvent) : [ INTEGER ];
-(* gdk_crossing_event_get_mode *)
-PROCEDURE gdk_crossing_event_get_mode (event: GdkCrossingEvent) : [ CARDINAL ];
+(* GdkNotifyType gdk_crossing_event_get_detail(GdkCrossingEvent *event) *)
+PROCEDURE gdk_crossing_event_get_detail (event: GdkCrossingEvent) : CARDINAL;
+
+(* gboolean gdk_crossing_event_get_focus(GdkCrossingEvent *event) *)
+PROCEDURE gdk_crossing_event_get_focus (event: GdkCrossingEvent) : INTEGER;
+
+(* GdkCrossingMode gdk_crossing_event_get_mode(GdkCrossingEvent *event) *)
+PROCEDURE gdk_crossing_event_get_mode (event: GdkCrossingEvent) : CARDINAL;
 
 END GdkCrossingEvent.

+ 39 - 17
src/GdkCursor.def

@@ -1,6 +1,13 @@
 DEFINITION MODULE FOR "C" GdkCursor ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkCursor: a mouse pointer image.  Mapped onto
+   <gdk/gdkcursor.h>.
+
+   Build a cursor from a texture with gdk_cursor_new_from_texture() or
+   from a named system cursor with gdk_cursor_new_from_name().  Attach
+   it to a surface with GdkSurface.gdk_surface_set_cursor.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,21 +25,36 @@ EXPORT UNQUALIFIED
 TYPE
    GdkCursor = ADDRESS;
 
-(* gdk_cursor_new_from_callback *)
-PROCEDURE gdk_cursor_new_from_callback (data: ADDRESS; destroy: ADDRESS; fallback: GdkCursor) : [ ADDRESS ];
-(* gdk_cursor_new_from_name *)
-PROCEDURE gdk_cursor_new_from_name (name: ARRAY OF CHAR; fallback: GdkCursor) : [ ADDRESS ];
-(* gdk_cursor_new_from_texture *)
-PROCEDURE gdk_cursor_new_from_texture (texture: ADDRESS; hotspot_x: INTEGER; hotspot_y: INTEGER; fallback: GdkCursor) : [ ADDRESS ];
-(* gdk_cursor_get_fallback *)
-PROCEDURE gdk_cursor_get_fallback (cursor: GdkCursor) : [ ADDRESS ];
-(* gdk_cursor_get_hotspot_x *)
-PROCEDURE gdk_cursor_get_hotspot_x (cursor: GdkCursor) : [ INTEGER ];
-(* gdk_cursor_get_hotspot_y *)
-PROCEDURE gdk_cursor_get_hotspot_y (cursor: GdkCursor) : [ INTEGER ];
-(* gdk_cursor_get_name *)
-PROCEDURE gdk_cursor_get_name (cursor: GdkCursor) : [ ADDRESS ];
-(* gdk_cursor_get_texture *)
-PROCEDURE gdk_cursor_get_texture (cursor: GdkCursor) : [ ADDRESS ];
+(* GdkCursor *gdk_cursor_new_from_callback(gpointer data,
+                                            GDestroyNotify destroy,
+                                            GdkCursor *fallback) *)
+PROCEDURE gdk_cursor_new_from_callback (data: ADDRESS; destroy: ADDRESS;
+                                        fallback: GdkCursor) : ADDRESS;
+
+(* GdkCursor *gdk_cursor_new_from_name(const char *name,
+                                        GdkCursor *fallback) *)
+PROCEDURE gdk_cursor_new_from_name (name: ARRAY OF CHAR;
+                                    fallback: GdkCursor) : ADDRESS;
+
+(* GdkCursor *gdk_cursor_new_from_texture(GdkTexture *texture, int hotspot_x,
+                                           int hotspot_y, GdkCursor *fallback) *)
+PROCEDURE gdk_cursor_new_from_texture (texture: ADDRESS; hotspot_x: INTEGER;
+                                       hotspot_y: INTEGER;
+                                       fallback: GdkCursor) : ADDRESS;
+
+(* GdkCursor *gdk_cursor_get_fallback(GdkCursor *cursor) *)
+PROCEDURE gdk_cursor_get_fallback (cursor: GdkCursor) : ADDRESS;
+
+(* int gdk_cursor_get_hotspot_x(GdkCursor *cursor) *)
+PROCEDURE gdk_cursor_get_hotspot_x (cursor: GdkCursor) : INTEGER;
+
+(* int gdk_cursor_get_hotspot_y(GdkCursor *cursor) *)
+PROCEDURE gdk_cursor_get_hotspot_y (cursor: GdkCursor) : INTEGER;
+
+(* const char *gdk_cursor_get_name(GdkCursor *cursor) *)
+PROCEDURE gdk_cursor_get_name (cursor: GdkCursor) : ADDRESS;
+
+(* GdkTexture *gdk_cursor_get_texture(GdkCursor *cursor) *)
+PROCEDURE gdk_cursor_get_texture (cursor: GdkCursor) : ADDRESS;
 
 END GdkCursor.

+ 6 - 3
src/GdkDNDEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDNDEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDNDEvent: a drag-and-drop event.  Mapped onto
+   <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDNDEvent = ADDRESS;
 
-(* gdk_dnd_event_get_drop *)
-PROCEDURE gdk_dnd_event_get_drop (event: GdkDNDEvent) : [ ADDRESS ];
+(* GdkDrop *gdk_dnd_event_get_drop(GdkDNDEvent *event) *)
+PROCEDURE gdk_dnd_event_get_drop (event: GdkDNDEvent) : ADDRESS;
 
 END GdkDNDEvent.

+ 67 - 38
src/GdkDevice.def

@@ -1,6 +1,13 @@
 DEFINITION MODULE FOR "C" GdkDevice ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDevice: an input device such as a mouse, keyboard or
+   tablet.  Mapped onto <gdk/gdkdevice.h>.
+
+   Get a device from its GdkSeat; a plain pointer device is
+   gdk_seat_get_pointer.  gdk_device_get_direction returns a
+   PangoDirection, and gdk_device_get_source a GdkInputSource.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -29,43 +36,65 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDevice = ADDRESS;
 
-(* gdk_device_get_active_layout_index *)
-PROCEDURE gdk_device_get_active_layout_index (device: GdkDevice) : [ INTEGER ];
-(* gdk_device_get_caps_lock_state *)
-PROCEDURE gdk_device_get_caps_lock_state (device: GdkDevice) : [ INTEGER ];
-(* gdk_device_get_device_tool *)
-PROCEDURE gdk_device_get_device_tool (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_direction *)
-PROCEDURE gdk_device_get_direction (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_display *)
-PROCEDURE gdk_device_get_display (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_has_cursor *)
-PROCEDURE gdk_device_get_has_cursor (device: GdkDevice) : [ INTEGER ];
-(* gdk_device_get_layout_names *)
+(* int gdk_device_get_active_layout_index(GdkDevice *device) *)
+PROCEDURE gdk_device_get_active_layout_index (device: GdkDevice) : INTEGER;
+
+(* gboolean gdk_device_get_caps_lock_state(GdkDevice *device) *)
+PROCEDURE gdk_device_get_caps_lock_state (device: GdkDevice) : INTEGER;
+
+(* GdkDeviceTool *gdk_device_get_device_tool(GdkDevice *device) *)
+PROCEDURE gdk_device_get_device_tool (device: GdkDevice) : ADDRESS;
+
+(* PangoDirection gdk_device_get_direction(GdkDevice *device) *)
+PROCEDURE gdk_device_get_direction (device: GdkDevice) : CARDINAL;
+
+(* GdkDisplay *gdk_device_get_display(GdkDevice *device) *)
+PROCEDURE gdk_device_get_display (device: GdkDevice) : ADDRESS;
+
+(* gboolean gdk_device_get_has_cursor(GdkDevice *device) *)
+PROCEDURE gdk_device_get_has_cursor (device: GdkDevice) : INTEGER;
+
+(* gchar **gdk_device_get_layout_names(GdkDevice *device) *)
 PROCEDURE gdk_device_get_layout_names (device: GdkDevice);
-(* gdk_device_get_modifier_state *)
-PROCEDURE gdk_device_get_modifier_state (device: GdkDevice) : [ CARDINAL ];
-(* gdk_device_get_name *)
-PROCEDURE gdk_device_get_name (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_num_lock_state *)
-PROCEDURE gdk_device_get_num_lock_state (device: GdkDevice) : [ INTEGER ];
-(* gdk_device_get_num_touches *)
-PROCEDURE gdk_device_get_num_touches (device: GdkDevice) : [ CARDINAL ];
-(* gdk_device_get_product_id *)
-PROCEDURE gdk_device_get_product_id (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_scroll_lock_state *)
-PROCEDURE gdk_device_get_scroll_lock_state (device: GdkDevice) : [ INTEGER ];
-(* gdk_device_get_seat *)
-PROCEDURE gdk_device_get_seat (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_get_source *)
-PROCEDURE gdk_device_get_source (device: GdkDevice) : [ CARDINAL ];
-(* gdk_device_get_surface_at_position *)
-PROCEDURE gdk_device_get_surface_at_position (device: GdkDevice; VAR win_x: REAL; VAR win_y: REAL) : [ ADDRESS ];
-(* gdk_device_get_timestamp *)
-PROCEDURE gdk_device_get_timestamp (device: GdkDevice) : [ CARDINAL ];
-(* gdk_device_get_vendor_id *)
-PROCEDURE gdk_device_get_vendor_id (device: GdkDevice) : [ ADDRESS ];
-(* gdk_device_has_bidi_layouts *)
-PROCEDURE gdk_device_has_bidi_layouts (device: GdkDevice) : [ INTEGER ];
+
+(* GdkModifierType gdk_device_get_modifier_state(GdkDevice *device) *)
+PROCEDURE gdk_device_get_modifier_state (device: GdkDevice) : CARDINAL;
+
+(* const char *gdk_device_get_name(GdkDevice *device) *)
+PROCEDURE gdk_device_get_name (device: GdkDevice) : ADDRESS;
+
+(* gboolean gdk_device_get_num_lock_state(GdkDevice *device) *)
+PROCEDURE gdk_device_get_num_lock_state (device: GdkDevice) : INTEGER;
+
+(* guint gdk_device_get_num_touches(GdkDevice *device) *)
+PROCEDURE gdk_device_get_num_touches (device: GdkDevice) : CARDINAL;
+
+(* const char *gdk_device_get_product_id(GdkDevice *device) *)
+PROCEDURE gdk_device_get_product_id (device: GdkDevice) : ADDRESS;
+
+(* gboolean gdk_device_get_scroll_lock_state(GdkDevice *device) *)
+PROCEDURE gdk_device_get_scroll_lock_state (device: GdkDevice) : INTEGER;
+
+(* GdkSeat *gdk_device_get_seat(GdkDevice *device) *)
+PROCEDURE gdk_device_get_seat (device: GdkDevice) : ADDRESS;
+
+(* GdkInputSource gdk_device_get_source(GdkDevice *device) *)
+PROCEDURE gdk_device_get_source (device: GdkDevice) : CARDINAL;
+
+(* GdkSurface *gdk_device_get_surface_at_position(GdkDevice *device,
+                                                   double *win_x,
+                                                   double *win_y) *)
+PROCEDURE gdk_device_get_surface_at_position (device: GdkDevice;
+                                              VAR win_x: REAL;
+                                              VAR win_y: REAL) : ADDRESS;
+
+(* guint32 gdk_device_get_timestamp(GdkDevice *device) *)
+PROCEDURE gdk_device_get_timestamp (device: GdkDevice) : CARDINAL;
+
+(* const char *gdk_device_get_vendor_id(GdkDevice *device) *)
+PROCEDURE gdk_device_get_vendor_id (device: GdkDevice) : ADDRESS;
+
+(* gboolean gdk_device_has_bidi_layouts(GdkDevice *device) *)
+PROCEDURE gdk_device_has_bidi_layouts (device: GdkDevice) : INTEGER;
 
 END GdkDevice.

+ 22 - 9
src/GdkDevicePad.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDevicePad ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDevicePad: a tablet pad with buttons, rings and strips.
+   Mapped onto <gdk/gdkdevicepad.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,23 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDevicePad = ADDRESS;
 
-(* gdk_device_pad_get_feature_group *)
-PROCEDURE gdk_device_pad_get_feature_group (pad: GdkDevicePad; feature: CARDINAL; feature_idx: INTEGER) : [ INTEGER ];
-(* gdk_device_pad_get_group_n_modes *)
-PROCEDURE gdk_device_pad_get_group_n_modes (pad: GdkDevicePad; group_idx: INTEGER) : [ INTEGER ];
-(* gdk_device_pad_get_n_features *)
-PROCEDURE gdk_device_pad_get_n_features (pad: GdkDevicePad; feature: CARDINAL) : [ INTEGER ];
-(* gdk_device_pad_get_n_groups *)
-PROCEDURE gdk_device_pad_get_n_groups (pad: GdkDevicePad) : [ INTEGER ];
+(* int gdk_device_pad_get_feature_group(GdkDevicePad *pad,
+                                         GdkDevicePadFeature feature,
+                                         int feature_idx) *)
+PROCEDURE gdk_device_pad_get_feature_group (pad: GdkDevicePad;
+                                            feature: CARDINAL;
+                                            feature_idx: INTEGER) : INTEGER;
+
+(* int gdk_device_pad_get_group_n_modes(GdkDevicePad *pad, int group_idx) *)
+PROCEDURE gdk_device_pad_get_group_n_modes (pad: GdkDevicePad;
+                                            group_idx: INTEGER) : INTEGER;
+
+(* int gdk_device_pad_get_n_features(GdkDevicePad *pad,
+                                      GdkDevicePadFeature feature) *)
+PROCEDURE gdk_device_pad_get_n_features (pad: GdkDevicePad;
+                                         feature: CARDINAL) : INTEGER;
+
+(* int gdk_device_pad_get_n_groups(GdkDevicePad *pad) *)
+PROCEDURE gdk_device_pad_get_n_groups (pad: GdkDevicePad) : INTEGER;
 
 END GdkDevicePad.

+ 15 - 9
src/GdkDeviceTool.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDeviceTool ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDeviceTool: a stylus, eraser or other tablet tool.
+   Mapped onto <gdk/gdkdevicetool.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDeviceTool = ADDRESS;
 
-(* gdk_device_tool_get_axes *)
-PROCEDURE gdk_device_tool_get_axes (tool: GdkDeviceTool) : [ CARDINAL ];
-(* gdk_device_tool_get_hardware_id *)
-PROCEDURE gdk_device_tool_get_hardware_id (tool: GdkDeviceTool) : [ LONGCARD ];
-(* gdk_device_tool_get_serial *)
-PROCEDURE gdk_device_tool_get_serial (tool: GdkDeviceTool) : [ LONGCARD ];
-(* gdk_device_tool_get_tool_type *)
-PROCEDURE gdk_device_tool_get_tool_type (tool: GdkDeviceTool) : [ CARDINAL ];
+(* GdkAxisFlags gdk_device_tool_get_axes(GdkDeviceTool *tool) *)
+PROCEDURE gdk_device_tool_get_axes (tool: GdkDeviceTool) : CARDINAL;
+
+(* guint64 gdk_device_tool_get_hardware_id(GdkDeviceTool *tool) *)
+PROCEDURE gdk_device_tool_get_hardware_id (tool: GdkDeviceTool) : LONGCARD;
+
+(* guint64 gdk_device_tool_get_serial(GdkDeviceTool *tool) *)
+PROCEDURE gdk_device_tool_get_serial (tool: GdkDeviceTool) : LONGCARD;
+
+(* GdkDeviceToolType gdk_device_tool_get_tool_type(GdkDeviceTool *tool) *)
+PROCEDURE gdk_device_tool_get_tool_type (tool: GdkDeviceTool) : CARDINAL;
 
 END GdkDeviceTool.

+ 114 - 56
src/GdkDisplay.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkDisplay ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDisplay: the connection to a display server.  Mapped
+   onto <gdk/gdkdisplay.h>.
+
+   The default display is gdk_display_get_default(); it owns the seats,
+   monitors, clipboards and DMA-BUF formats used by the application.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -40,65 +46,117 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDisplay = ADDRESS;
 
-(* gdk_display_get_default *)
-PROCEDURE gdk_display_get_default () : [ ADDRESS ];
-(* gdk_display_open *)
-PROCEDURE gdk_display_open (display_name: ARRAY OF CHAR) : [ ADDRESS ];
-(* gdk_display_beep *)
+(* GdkDisplay *gdk_display_get_default(void) *)
+PROCEDURE gdk_display_get_default () : ADDRESS;
+
+(* GdkDisplay *gdk_display_open(const char *display_name) *)
+PROCEDURE gdk_display_open (display_name: ARRAY OF CHAR) : ADDRESS;
+
+(* void gdk_display_beep(GdkDisplay *display) *)
 PROCEDURE gdk_display_beep (display: GdkDisplay);
-(* gdk_display_close *)
+
+(* void gdk_display_close(GdkDisplay *display) *)
 PROCEDURE gdk_display_close (display: GdkDisplay);
-(* gdk_display_create_gl_context *)
-PROCEDURE gdk_display_create_gl_context (self: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_device_is_grabbed *)
-PROCEDURE gdk_display_device_is_grabbed (display: GdkDisplay; device: ADDRESS) : [ INTEGER ];
-(* gdk_display_flush *)
+
+(* GdkGLContext *gdk_display_create_gl_context(GdkDisplay *self) *)
+PROCEDURE gdk_display_create_gl_context (self: GdkDisplay) : ADDRESS;
+
+(* gboolean gdk_display_device_is_grabbed(GdkDisplay *display,
+                                           GdkDevice *device) *)
+PROCEDURE gdk_display_device_is_grabbed (display: GdkDisplay;
+                                         device: ADDRESS) : INTEGER;
+
+(* void gdk_display_flush(GdkDisplay *display) *)
 PROCEDURE gdk_display_flush (display: GdkDisplay);
-(* gdk_display_get_app_launch_context *)
-PROCEDURE gdk_display_get_app_launch_context (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_clipboard *)
-PROCEDURE gdk_display_get_clipboard (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_default_seat *)
-PROCEDURE gdk_display_get_default_seat (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_dmabuf_formats *)
-PROCEDURE gdk_display_get_dmabuf_formats (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_monitor_at_surface *)
-PROCEDURE gdk_display_get_monitor_at_surface (display: GdkDisplay; surface: ADDRESS) : [ ADDRESS ];
-(* gdk_display_get_monitors *)
-PROCEDURE gdk_display_get_monitors (self: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_name *)
-PROCEDURE gdk_display_get_name (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_primary_clipboard *)
-PROCEDURE gdk_display_get_primary_clipboard (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_get_setting *)
-PROCEDURE gdk_display_get_setting (display: GdkDisplay; name: ARRAY OF CHAR; value: ADDRESS) : [ INTEGER ];
-(* gdk_display_get_startup_notification_id *)
-PROCEDURE gdk_display_get_startup_notification_id (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_is_closed *)
-PROCEDURE gdk_display_is_closed (display: GdkDisplay) : [ INTEGER ];
-(* gdk_display_is_composited *)
-PROCEDURE gdk_display_is_composited (display: GdkDisplay) : [ INTEGER ];
-(* gdk_display_is_rgba *)
-PROCEDURE gdk_display_is_rgba (display: GdkDisplay) : [ INTEGER ];
-(* gdk_display_list_seats *)
-PROCEDURE gdk_display_list_seats (display: GdkDisplay) : [ ADDRESS ];
-(* gdk_display_map_keycode *)
-PROCEDURE gdk_display_map_keycode (display: GdkDisplay; keycode: CARDINAL; keys: ADDRESS; VAR n_entries: INTEGER) : [ INTEGER ];
-(* gdk_display_map_keyval *)
-PROCEDURE gdk_display_map_keyval (display: GdkDisplay; keyval: CARDINAL; VAR n_keys: INTEGER) : [ INTEGER ];
-(* gdk_display_notify_startup_complete *)
-PROCEDURE gdk_display_notify_startup_complete (display: GdkDisplay; startup_id: ARRAY OF CHAR);
-(* gdk_display_prepare_gl *)
-PROCEDURE gdk_display_prepare_gl (self: GdkDisplay) : [ INTEGER ];
-(* gdk_display_put_event *)
+
+(* GdkAppLaunchContext *gdk_display_get_app_launch_context(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_app_launch_context (display: GdkDisplay) : ADDRESS;
+
+(* GdkClipboard *gdk_display_get_clipboard(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_clipboard (display: GdkDisplay) : ADDRESS;
+
+(* GdkSeat *gdk_display_get_default_seat(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_default_seat (display: GdkDisplay) : ADDRESS;
+
+(* GdkDmabufFormats *gdk_display_get_dmabuf_formats(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_dmabuf_formats (display: GdkDisplay) : ADDRESS;
+
+(* GdkMonitor *gdk_display_get_monitor_at_surface(GdkDisplay *display,
+                                                   GdkSurface *surface) *)
+PROCEDURE gdk_display_get_monitor_at_surface (display: GdkDisplay;
+                                              surface: ADDRESS) : ADDRESS;
+
+(* GListModel *gdk_display_get_monitors(GdkDisplay *self) *)
+PROCEDURE gdk_display_get_monitors (self: GdkDisplay) : ADDRESS;
+
+(* const char *gdk_display_get_name(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_name (display: GdkDisplay) : ADDRESS;
+
+(* GdkClipboard *gdk_display_get_primary_clipboard(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_primary_clipboard (display: GdkDisplay) : ADDRESS;
+
+(* gboolean gdk_display_get_setting(GdkDisplay *display, const char *name,
+                                     GValue *value) *)
+PROCEDURE gdk_display_get_setting (display: GdkDisplay;
+                                   name: ARRAY OF CHAR;
+                                   value: ADDRESS) : INTEGER;
+
+(* const char *gdk_display_get_startup_notification_id(GdkDisplay *display) *)
+PROCEDURE gdk_display_get_startup_notification_id (display: GdkDisplay)
+                                                  : ADDRESS;
+
+(* gboolean gdk_display_is_closed(GdkDisplay *display) *)
+PROCEDURE gdk_display_is_closed (display: GdkDisplay) : INTEGER;
+
+(* gboolean gdk_display_is_composited(GdkDisplay *display) *)
+PROCEDURE gdk_display_is_composited (display: GdkDisplay) : INTEGER;
+
+(* gboolean gdk_display_is_rgba(GdkDisplay *display) *)
+PROCEDURE gdk_display_is_rgba (display: GdkDisplay) : INTEGER;
+
+(* GList *gdk_display_list_seats(GdkDisplay *display) *)
+PROCEDURE gdk_display_list_seats (display: GdkDisplay) : ADDRESS;
+
+(* gboolean gdk_display_map_keycode(GdkDisplay *display, guint keycode,
+                                    GdkKeymapKey **keys, int *n_entries) *)
+PROCEDURE gdk_display_map_keycode (display: GdkDisplay; keycode: CARDINAL;
+                                   keys: ADDRESS;
+                                   VAR n_entries: INTEGER) : INTEGER;
+
+(* gboolean gdk_display_map_keyval(GdkDisplay *display, guint keyval,
+                                   int *n_keys) *)
+PROCEDURE gdk_display_map_keyval (display: GdkDisplay; keyval: CARDINAL;
+                                  VAR n_keys: INTEGER) : INTEGER;
+
+(* void gdk_display_notify_startup_complete(GdkDisplay *display,
+                                            const char *startup_id) *)
+PROCEDURE gdk_display_notify_startup_complete (display: GdkDisplay;
+                                               startup_id: ARRAY OF CHAR);
+
+(* gboolean gdk_display_prepare_gl(GdkDisplay *self) *)
+PROCEDURE gdk_display_prepare_gl (self: GdkDisplay) : INTEGER;
+
+(* void gdk_display_put_event(GdkDisplay *display, GdkEvent *event) *)
 PROCEDURE gdk_display_put_event (display: GdkDisplay; event: ADDRESS);
-(* gdk_display_supports_input_shapes *)
-PROCEDURE gdk_display_supports_input_shapes (display: GdkDisplay) : [ INTEGER ];
-(* gdk_display_supports_shadow_width *)
-PROCEDURE gdk_display_supports_shadow_width (display: GdkDisplay) : [ INTEGER ];
-(* gdk_display_sync *)
+
+(* gboolean gdk_display_supports_input_shapes(GdkDisplay *display) *)
+PROCEDURE gdk_display_supports_input_shapes (display: GdkDisplay) : INTEGER;
+
+(* gboolean gdk_display_supports_shadow_width(GdkDisplay *display) *)
+PROCEDURE gdk_display_supports_shadow_width (display: GdkDisplay) : INTEGER;
+
+(* void gdk_display_sync(GdkDisplay *display) *)
 PROCEDURE gdk_display_sync (display: GdkDisplay);
-(* gdk_display_translate_key *)
-PROCEDURE gdk_display_translate_key (display: GdkDisplay; keycode: CARDINAL; state: CARDINAL; group: INTEGER; VAR keyval: CARDINAL; VAR effective_group: INTEGER; VAR level: INTEGER; VAR consumed: CARDINAL) : [ INTEGER ];
+
+(* gboolean gdk_display_translate_key(GdkDisplay *display, guint keycode,
+                                      GdkModifierType state, int group,
+                                      guint *keyval, int *effective_group,
+                                      int *level, GdkModifierType *consumed) *)
+PROCEDURE gdk_display_translate_key (display: GdkDisplay; keycode: CARDINAL;
+                                     state: CARDINAL; group: INTEGER;
+                                     VAR keyval: CARDINAL;
+                                     VAR effective_group: INTEGER;
+                                     VAR level: INTEGER;
+                                     VAR consumed: CARDINAL) : INTEGER;
 
 END GdkDisplay.

+ 28 - 11
src/GdkDisplayManager.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkDisplayManager ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDisplayManager: the singleton that tracks open displays.
+   Mapped onto <gdk/gdkdisplaymanager.h>.
+
+   Obtain it with gdk_display_manager_get(); the default display is
+   gdk_display_manager_get_default_display.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,15 +21,26 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDisplayManager = ADDRESS;
 
-(* gdk_display_manager_get *)
-PROCEDURE gdk_display_manager_get () : [ ADDRESS ];
-(* gdk_display_manager_get_default_display *)
-PROCEDURE gdk_display_manager_get_default_display (manager: GdkDisplayManager) : [ ADDRESS ];
-(* gdk_display_manager_list_displays *)
-PROCEDURE gdk_display_manager_list_displays (manager: GdkDisplayManager) : [ ADDRESS ];
-(* gdk_display_manager_open_display *)
-PROCEDURE gdk_display_manager_open_display (manager: GdkDisplayManager; name: ARRAY OF CHAR) : [ ADDRESS ];
-(* gdk_display_manager_set_default_display *)
-PROCEDURE gdk_display_manager_set_default_display (manager: GdkDisplayManager; display: ADDRESS);
+(* GdkDisplayManager *gdk_display_manager_get(void) *)
+PROCEDURE gdk_display_manager_get () : ADDRESS;
+
+(* GdkDisplay *gdk_display_manager_get_default_display(
+                  GdkDisplayManager *manager) *)
+PROCEDURE gdk_display_manager_get_default_display (manager: GdkDisplayManager)
+                                                  : ADDRESS;
+
+(* GSList *gdk_display_manager_list_displays(GdkDisplayManager *manager) *)
+PROCEDURE gdk_display_manager_list_displays (manager: GdkDisplayManager)
+                                           : ADDRESS;
+
+(* GdkDisplay *gdk_display_manager_open_display(
+                  GdkDisplayManager *manager, const char *name) *)
+PROCEDURE gdk_display_manager_open_display (manager: GdkDisplayManager;
+                                            name: ARRAY OF CHAR) : ADDRESS;
+
+(* void gdk_display_manager_set_default_display(GdkDisplayManager *manager,
+                                                 GdkDisplay *display) *)
+PROCEDURE gdk_display_manager_set_default_display
+              (manager: GdkDisplayManager; display: ADDRESS);
 
 END GdkDisplayManager.

+ 30 - 12
src/GdkDmabufFormats.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDmabufFormats ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDmabufFormats: the set of DMA-BUF formats a display
+   supports.  Mapped onto <gdk/gdkdmabufformats.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -16,17 +19,32 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDmabufFormats = ADDRESS;
 
-(* gdk_dmabuf_formats_contains *)
-PROCEDURE gdk_dmabuf_formats_contains (formats: GdkDmabufFormats; fourcc: CARDINAL; modifier: LONGCARD) : [ INTEGER ];
-(* gdk_dmabuf_formats_equal *)
-PROCEDURE gdk_dmabuf_formats_equal (formats1: GdkDmabufFormats; formats2: GdkDmabufFormats) : [ INTEGER ];
-(* gdk_dmabuf_formats_get_format *)
-PROCEDURE gdk_dmabuf_formats_get_format (formats: GdkDmabufFormats; idx: LONGCARD; VAR fourcc: CARDINAL; VAR modifier: LONGCARD);
-(* gdk_dmabuf_formats_get_n_formats *)
-PROCEDURE gdk_dmabuf_formats_get_n_formats (formats: GdkDmabufFormats) : [ LONGCARD ];
-(* gdk_dmabuf_formats_ref *)
-PROCEDURE gdk_dmabuf_formats_ref (formats: GdkDmabufFormats) : [ ADDRESS ];
-(* gdk_dmabuf_formats_unref *)
+(* gboolean gdk_dmabuf_formats_contains(GdkDmabufFormats *formats,
+                                         guint32 fourcc, guint64 modifier) *)
+PROCEDURE gdk_dmabuf_formats_contains (formats: GdkDmabufFormats;
+                                       fourcc: CARDINAL;
+                                       modifier: LONGCARD) : INTEGER;
+
+(* gboolean gdk_dmabuf_formats_equal(const GdkDmabufFormats *formats1,
+                                      const GdkDmabufFormats *formats2) *)
+PROCEDURE gdk_dmabuf_formats_equal (formats1: GdkDmabufFormats;
+                                    formats2: GdkDmabufFormats) : INTEGER;
+
+(* void gdk_dmabuf_formats_get_format(GdkDmabufFormats *formats, gsize idx,
+                                      guint32 *fourcc, guint64 *modifier) *)
+PROCEDURE gdk_dmabuf_formats_get_format (formats: GdkDmabufFormats;
+                                         idx: LONGCARD;
+                                         VAR fourcc: CARDINAL;
+                                         VAR modifier: LONGCARD);
+
+(* gsize gdk_dmabuf_formats_get_n_formats(GdkDmabufFormats *formats) *)
+PROCEDURE gdk_dmabuf_formats_get_n_formats (formats: GdkDmabufFormats)
+                                           : LONGCARD;
+
+(* GdkDmabufFormats *gdk_dmabuf_formats_ref(GdkDmabufFormats *formats) *)
+PROCEDURE gdk_dmabuf_formats_ref (formats: GdkDmabufFormats) : ADDRESS;
+
+(* void gdk_dmabuf_formats_unref(GdkDmabufFormats *formats) *)
 PROCEDURE gdk_dmabuf_formats_unref (formats: GdkDmabufFormats);
 
 END GdkDmabufFormats.

+ 147 - 57
src/GdkDmabufTextureBuilder.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDmabufTextureBuilder ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDmabufTextureBuilder: builds a GdkTexture backed by a
+   DMA-BUF.  Mapped onto <gdk/gdkdmabuftexturebuilder.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -38,61 +41,148 @@ EXPORT UNQUALIFIED
 TYPE
    GdkDmabufTextureBuilder = ADDRESS;
 
-(* gdk_dmabuf_texture_builder_new *)
-PROCEDURE gdk_dmabuf_texture_builder_new () : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_build *)
-PROCEDURE gdk_dmabuf_texture_builder_build (self: GdkDmabufTextureBuilder; destroy: ADDRESS; data: ADDRESS) : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_get_color_state *)
-PROCEDURE gdk_dmabuf_texture_builder_get_color_state (self: GdkDmabufTextureBuilder) : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_get_display *)
-PROCEDURE gdk_dmabuf_texture_builder_get_display (self: GdkDmabufTextureBuilder) : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_get_fd *)
-PROCEDURE gdk_dmabuf_texture_builder_get_fd (self: GdkDmabufTextureBuilder; plane: CARDINAL) : [ INTEGER ];
-(* gdk_dmabuf_texture_builder_get_fourcc *)
-PROCEDURE gdk_dmabuf_texture_builder_get_fourcc (self: GdkDmabufTextureBuilder) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_get_height *)
-PROCEDURE gdk_dmabuf_texture_builder_get_height (self: GdkDmabufTextureBuilder) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_get_modifier *)
-PROCEDURE gdk_dmabuf_texture_builder_get_modifier (self: GdkDmabufTextureBuilder) : [ LONGCARD ];
-(* gdk_dmabuf_texture_builder_get_n_planes *)
-PROCEDURE gdk_dmabuf_texture_builder_get_n_planes (self: GdkDmabufTextureBuilder) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_get_offset *)
-PROCEDURE gdk_dmabuf_texture_builder_get_offset (self: GdkDmabufTextureBuilder; plane: CARDINAL) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_get_premultiplied *)
-PROCEDURE gdk_dmabuf_texture_builder_get_premultiplied (self: GdkDmabufTextureBuilder) : [ INTEGER ];
-(* gdk_dmabuf_texture_builder_get_stride *)
-PROCEDURE gdk_dmabuf_texture_builder_get_stride (self: GdkDmabufTextureBuilder; plane: CARDINAL) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_get_update_region *)
-PROCEDURE gdk_dmabuf_texture_builder_get_update_region (self: GdkDmabufTextureBuilder) : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_get_update_texture *)
-PROCEDURE gdk_dmabuf_texture_builder_get_update_texture (self: GdkDmabufTextureBuilder) : [ ADDRESS ];
-(* gdk_dmabuf_texture_builder_get_width *)
-PROCEDURE gdk_dmabuf_texture_builder_get_width (self: GdkDmabufTextureBuilder) : [ CARDINAL ];
-(* gdk_dmabuf_texture_builder_set_color_state *)
-PROCEDURE gdk_dmabuf_texture_builder_set_color_state (self: GdkDmabufTextureBuilder; color_state: ADDRESS);
-(* gdk_dmabuf_texture_builder_set_display *)
-PROCEDURE gdk_dmabuf_texture_builder_set_display (self: GdkDmabufTextureBuilder; display: ADDRESS);
-(* gdk_dmabuf_texture_builder_set_fd *)
-PROCEDURE gdk_dmabuf_texture_builder_set_fd (self: GdkDmabufTextureBuilder; plane: CARDINAL; fd: INTEGER);
-(* gdk_dmabuf_texture_builder_set_fourcc *)
-PROCEDURE gdk_dmabuf_texture_builder_set_fourcc (self: GdkDmabufTextureBuilder; fourcc: CARDINAL);
-(* gdk_dmabuf_texture_builder_set_height *)
-PROCEDURE gdk_dmabuf_texture_builder_set_height (self: GdkDmabufTextureBuilder; height: CARDINAL);
-(* gdk_dmabuf_texture_builder_set_modifier *)
-PROCEDURE gdk_dmabuf_texture_builder_set_modifier (self: GdkDmabufTextureBuilder; modifier: LONGCARD);
-(* gdk_dmabuf_texture_builder_set_n_planes *)
-PROCEDURE gdk_dmabuf_texture_builder_set_n_planes (self: GdkDmabufTextureBuilder; n_planes: CARDINAL);
-(* gdk_dmabuf_texture_builder_set_offset *)
-PROCEDURE gdk_dmabuf_texture_builder_set_offset (self: GdkDmabufTextureBuilder; plane: CARDINAL; offset: CARDINAL);
-(* gdk_dmabuf_texture_builder_set_premultiplied *)
-PROCEDURE gdk_dmabuf_texture_builder_set_premultiplied (self: GdkDmabufTextureBuilder; premultiplied: INTEGER);
-(* gdk_dmabuf_texture_builder_set_stride *)
-PROCEDURE gdk_dmabuf_texture_builder_set_stride (self: GdkDmabufTextureBuilder; plane: CARDINAL; stride: CARDINAL);
-(* gdk_dmabuf_texture_builder_set_update_region *)
-PROCEDURE gdk_dmabuf_texture_builder_set_update_region (self: GdkDmabufTextureBuilder; region: ADDRESS);
-(* gdk_dmabuf_texture_builder_set_update_texture *)
-PROCEDURE gdk_dmabuf_texture_builder_set_update_texture (self: GdkDmabufTextureBuilder; texture: ADDRESS);
-(* gdk_dmabuf_texture_builder_set_width *)
-PROCEDURE gdk_dmabuf_texture_builder_set_width (self: GdkDmabufTextureBuilder; width: CARDINAL);
+(* GdkDmabufTextureBuilder *gdk_dmabuf_texture_builder_new(void) *)
+PROCEDURE gdk_dmabuf_texture_builder_new () : ADDRESS;
+
+(* GdkTexture *gdk_dmabuf_texture_builder_build(
+                 GdkDmabufTextureBuilder *self, GDestroyNotify destroy,
+                 gpointer data) *)
+PROCEDURE gdk_dmabuf_texture_builder_build (self: GdkDmabufTextureBuilder;
+                                            destroy: ADDRESS;
+                                            data: ADDRESS) : ADDRESS;
+
+(* GdkColorState *gdk_dmabuf_texture_builder_get_color_state(
+                    GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_color_state
+              (self: GdkDmabufTextureBuilder) : ADDRESS;
+
+(* GdkDisplay *gdk_dmabuf_texture_builder_get_display(
+                 GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_display
+              (self: GdkDmabufTextureBuilder) : ADDRESS;
+
+(* int gdk_dmabuf_texture_builder_get_fd(GdkDmabufTextureBuilder *self,
+                                          unsigned int plane) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_fd (self: GdkDmabufTextureBuilder;
+                                             plane: CARDINAL) : INTEGER;
+
+(* guint32 gdk_dmabuf_texture_builder_get_fourcc(
+             GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_fourcc
+              (self: GdkDmabufTextureBuilder) : CARDINAL;
+
+(* unsigned int gdk_dmabuf_texture_builder_get_height(
+                  GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_height
+              (self: GdkDmabufTextureBuilder) : CARDINAL;
+
+(* guint64 gdk_dmabuf_texture_builder_get_modifier(
+             GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_modifier
+              (self: GdkDmabufTextureBuilder) : LONGCARD;
+
+(* unsigned int gdk_dmabuf_texture_builder_get_n_planes(
+                  GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_n_planes
+              (self: GdkDmabufTextureBuilder) : CARDINAL;
+
+(* unsigned int gdk_dmabuf_texture_builder_get_offset(
+                  GdkDmabufTextureBuilder *self, unsigned int plane) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_offset
+              (self: GdkDmabufTextureBuilder; plane: CARDINAL) : CARDINAL;
+
+(* gboolean gdk_dmabuf_texture_builder_get_premultiplied(
+              GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_premultiplied
+              (self: GdkDmabufTextureBuilder) : INTEGER;
+
+(* unsigned int gdk_dmabuf_texture_builder_get_stride(
+                  GdkDmabufTextureBuilder *self, unsigned int plane) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_stride
+              (self: GdkDmabufTextureBuilder; plane: CARDINAL) : CARDINAL;
+
+(* cairo_region_t *gdk_dmabuf_texture_builder_get_update_region(
+                     GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_update_region
+              (self: GdkDmabufTextureBuilder) : ADDRESS;
+
+(* GdkTexture *gdk_dmabuf_texture_builder_get_update_texture(
+                  GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_update_texture
+              (self: GdkDmabufTextureBuilder) : ADDRESS;
+
+(* unsigned int gdk_dmabuf_texture_builder_get_width(
+                  GdkDmabufTextureBuilder *self) *)
+PROCEDURE gdk_dmabuf_texture_builder_get_width
+              (self: GdkDmabufTextureBuilder) : CARDINAL;
+
+(* void gdk_dmabuf_texture_builder_set_color_state(
+          GdkDmabufTextureBuilder *self, GdkColorState *color_state) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_color_state
+              (self: GdkDmabufTextureBuilder; color_state: ADDRESS);
+
+(* void gdk_dmabuf_texture_builder_set_display(
+          GdkDmabufTextureBuilder *self, GdkDisplay *display) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_display
+              (self: GdkDmabufTextureBuilder; display: ADDRESS);
+
+(* void gdk_dmabuf_texture_builder_set_fd(GdkDmabufTextureBuilder *self,
+                                           unsigned int plane, int fd) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_fd (self: GdkDmabufTextureBuilder;
+                                             plane: CARDINAL; fd: INTEGER);
+
+(* void gdk_dmabuf_texture_builder_set_fourcc(
+          GdkDmabufTextureBuilder *self, guint32 fourcc) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_fourcc
+              (self: GdkDmabufTextureBuilder; fourcc: CARDINAL);
+
+(* void gdk_dmabuf_texture_builder_set_height(
+          GdkDmabufTextureBuilder *self, unsigned int height) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_height
+              (self: GdkDmabufTextureBuilder; height: CARDINAL);
+
+(* void gdk_dmabuf_texture_builder_set_modifier(
+          GdkDmabufTextureBuilder *self, guint64 modifier) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_modifier
+              (self: GdkDmabufTextureBuilder; modifier: LONGCARD);
+
+(* void gdk_dmabuf_texture_builder_set_n_planes(
+          GdkDmabufTextureBuilder *self, unsigned int n_planes) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_n_planes
+              (self: GdkDmabufTextureBuilder; n_planes: CARDINAL);
+
+(* void gdk_dmabuf_texture_builder_set_offset(
+          GdkDmabufTextureBuilder *self, unsigned int plane,
+          unsigned int offset) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_offset
+              (self: GdkDmabufTextureBuilder; plane: CARDINAL;
+               offset: CARDINAL);
+
+(* void gdk_dmabuf_texture_builder_set_premultiplied(
+          GdkDmabufTextureBuilder *self, gboolean premultiplied) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_premultiplied
+              (self: GdkDmabufTextureBuilder; premultiplied: INTEGER);
+
+(* void gdk_dmabuf_texture_builder_set_stride(
+          GdkDmabufTextureBuilder *self, unsigned int plane,
+          unsigned int stride) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_stride
+              (self: GdkDmabufTextureBuilder; plane: CARDINAL;
+               stride: CARDINAL);
+
+(* void gdk_dmabuf_texture_builder_set_update_region(
+          GdkDmabufTextureBuilder *self, cairo_region_t *region) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_update_region
+              (self: GdkDmabufTextureBuilder; region: ADDRESS);
+
+(* void gdk_dmabuf_texture_builder_set_update_texture(
+          GdkDmabufTextureBuilder *self, GdkTexture *texture) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_update_texture
+              (self: GdkDmabufTextureBuilder; texture: ADDRESS);
+
+(* void gdk_dmabuf_texture_builder_set_width(
+          GdkDmabufTextureBuilder *self, unsigned int width) *)
+PROCEDURE gdk_dmabuf_texture_builder_set_width
+              (self: GdkDmabufTextureBuilder; width: CARDINAL);
 
 END GdkDmabufTextureBuilder.

+ 38 - 21
src/GdkDrag.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkDrag ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDrag: an ongoing drag-and-drop operation.  Mapped onto
+   <gdk/gdkdrag.h>.
+
+   Start one with gdk_drag_begin(); monitor its progress and call
+   gdk_drag_drop_done() when the drag succeeds or is cancelled.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,30 +24,41 @@ EXPORT UNQUALIFIED
    gdk_drag_get_surface,
    gdk_drag_set_hotspot;
 
+
 TYPE
    GdkDrag = ADDRESS;
 
-(* gdk_drag_begin *)
-PROCEDURE gdk_drag_begin (surface: ADDRESS; device: ADDRESS; content: ADDRESS; actions: CARDINAL; dx: REAL; dy: REAL) : [ ADDRESS ];
-(* gdk_drag_drop_done *)
+(* GdkDrag *gdk_drag_begin(GdkSurface *surface, GdkDevice *device, GdkContentProvider *content, GdkDragAction actions, double dx, double dy) *)
+PROCEDURE gdk_drag_begin (surface: ADDRESS; device: ADDRESS; content: ADDRESS; actions: CARDINAL; dx: REAL; dy: REAL) : ADDRESS;
+
+(* void gdk_drag_drop_done(GdkDrag *drag, gboolean success) *)
 PROCEDURE gdk_drag_drop_done (drag: GdkDrag; success: INTEGER);
-(* gdk_drag_get_actions *)
-PROCEDURE gdk_drag_get_actions (drag: GdkDrag) : [ CARDINAL ];
-(* gdk_drag_get_content *)
-PROCEDURE gdk_drag_get_content (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_get_device *)
-PROCEDURE gdk_drag_get_device (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_get_display *)
-PROCEDURE gdk_drag_get_display (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_get_drag_surface *)
-PROCEDURE gdk_drag_get_drag_surface (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_get_formats *)
-PROCEDURE gdk_drag_get_formats (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_get_selected_action *)
-PROCEDURE gdk_drag_get_selected_action (drag: GdkDrag) : [ CARDINAL ];
-(* gdk_drag_get_surface *)
-PROCEDURE gdk_drag_get_surface (drag: GdkDrag) : [ ADDRESS ];
-(* gdk_drag_set_hotspot *)
+
+(* GdkDragAction gdk_drag_get_actions(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_actions (drag: GdkDrag) : CARDINAL;
+
+(* GdkContentProvider *gdk_drag_get_content(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_content (drag: GdkDrag) : ADDRESS;
+
+(* GdkDevice *gdk_drag_get_device(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_device (drag: GdkDrag) : ADDRESS;
+
+(* GdkDisplay *gdk_drag_get_display(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_display (drag: GdkDrag) : ADDRESS;
+
+(* GdkSurface *gdk_drag_get_drag_surface(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_drag_surface (drag: GdkDrag) : ADDRESS;
+
+(* GdkContentFormats *gdk_drag_get_formats(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_formats (drag: GdkDrag) : ADDRESS;
+
+(* GdkDragAction gdk_drag_get_selected_action(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_selected_action (drag: GdkDrag) : CARDINAL;
+
+(* GdkSurface *gdk_drag_get_surface(GdkDrag *drag) *)
+PROCEDURE gdk_drag_get_surface (drag: GdkDrag) : ADDRESS;
+
+(* void gdk_drag_set_hotspot(GdkDrag *drag, int hot_x, int hot_y) *)
 PROCEDURE gdk_drag_set_hotspot (drag: GdkDrag; hot_x: INTEGER; hot_y: INTEGER);
 
 END GdkDrag.

+ 7 - 3
src/GdkDragSurface.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDragSurface ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDragSurface: a surface that presents a drag icon.
+   Mapped onto <gdk/gdkdragsurface.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -8,10 +11,11 @@ EXPORT UNQUALIFIED
    GdkDragSurface,
    gdk_drag_surface_present;
 
+
 TYPE
    GdkDragSurface = ADDRESS;
 
-(* gdk_drag_surface_present *)
-PROCEDURE gdk_drag_surface_present (drag_surface: GdkDragSurface; width: INTEGER; height: INTEGER) : [ INTEGER ];
+(* gboolean gdk_drag_surface_present(GdkDragSurface *drag_surface, int width, int height) *)
+PROCEDURE gdk_drag_surface_present (drag_surface: GdkDragSurface; width: INTEGER; height: INTEGER) : INTEGER;
 
 END GdkDragSurface.

+ 6 - 2
src/GdkDragSurfaceSize.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDragSurfaceSize ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDragSurfaceSize: the size of a drag surface.  Mapped onto
+   <gdk/gdkdragsurfacesize.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -8,10 +11,11 @@ EXPORT UNQUALIFIED
    GdkDragSurfaceSize,
    gdk_drag_surface_size_set_size;
 
+
 TYPE
    GdkDragSurfaceSize = ADDRESS;
 
-(* gdk_drag_surface_size_set_size *)
+(* void gdk_drag_surface_size_set_size(GdkDragSurfaceSize *size, int width, int height) *)
 PROCEDURE gdk_drag_surface_size_set_size (size: GdkDragSurfaceSize; width: INTEGER; height: INTEGER);
 
 END GdkDragSurfaceSize.

+ 20 - 11
src/GdkDrawContext.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkDrawContext ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDrawContext: a drawing context for a surface (Cairo, GL
+   or Vulkan).  Mapped onto <gdk/gdkdrawcontext.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,20 +16,26 @@ EXPORT UNQUALIFIED
    gdk_draw_context_get_surface,
    gdk_draw_context_is_in_frame;
 
+
 TYPE
    GdkDrawContext = ADDRESS;
 
-(* gdk_draw_context_begin_frame *)
+(* void gdk_draw_context_begin_frame(GdkDrawContext *context, const cairo_region_t *region) *)
 PROCEDURE gdk_draw_context_begin_frame (context: GdkDrawContext; region: ADDRESS);
-(* gdk_draw_context_end_frame *)
+
+(* void gdk_draw_context_end_frame(GdkDrawContext *context) *)
 PROCEDURE gdk_draw_context_end_frame (context: GdkDrawContext);
-(* gdk_draw_context_get_display *)
-PROCEDURE gdk_draw_context_get_display (context: GdkDrawContext) : [ ADDRESS ];
-(* gdk_draw_context_get_frame_region *)
-PROCEDURE gdk_draw_context_get_frame_region (context: GdkDrawContext) : [ ADDRESS ];
-(* gdk_draw_context_get_surface *)
-PROCEDURE gdk_draw_context_get_surface (context: GdkDrawContext) : [ ADDRESS ];
-(* gdk_draw_context_is_in_frame *)
-PROCEDURE gdk_draw_context_is_in_frame (context: GdkDrawContext) : [ INTEGER ];
+
+(* GdkDisplay *gdk_draw_context_get_display(GdkDrawContext *context) *)
+PROCEDURE gdk_draw_context_get_display (context: GdkDrawContext) : ADDRESS;
+
+(* const cairo_region_t *gdk_draw_context_get_frame_region(GdkDrawContext *context) *)
+PROCEDURE gdk_draw_context_get_frame_region (context: GdkDrawContext) : ADDRESS;
+
+(* GdkSurface *gdk_draw_context_get_surface(GdkDrawContext *context) *)
+PROCEDURE gdk_draw_context_get_surface (context: GdkDrawContext) : ADDRESS;
+
+(* gboolean gdk_draw_context_is_in_frame(GdkDrawContext *context) *)
+PROCEDURE gdk_draw_context_is_in_frame (context: GdkDrawContext) : INTEGER;
 
 END GdkDrawContext.

+ 40 - 22
src/GdkDrop.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkDrop ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkDrop: a destination for a drag-and-drop operation.
+   Mapped onto <gdk/gdkdrop.h>.
+
+   Read the offered data with gdk_drop_read_async(); report the effect of
+   the drop with gdk_drop_status() and gdk_drop_finish().
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -19,32 +25,44 @@ EXPORT UNQUALIFIED
    gdk_drop_read_value_finish,
    gdk_drop_status;
 
+
 TYPE
    GdkDrop = ADDRESS;
 
-(* gdk_drop_finish *)
+(* void gdk_drop_finish(GdkDrop *self, GdkDragAction action) *)
 PROCEDURE gdk_drop_finish (self: GdkDrop; action: CARDINAL);
-(* gdk_drop_get_actions *)
-PROCEDURE gdk_drop_get_actions (self: GdkDrop) : [ CARDINAL ];
-(* gdk_drop_get_device *)
-PROCEDURE gdk_drop_get_device (self: GdkDrop) : [ ADDRESS ];
-(* gdk_drop_get_display *)
-PROCEDURE gdk_drop_get_display (self: GdkDrop) : [ ADDRESS ];
-(* gdk_drop_get_drag *)
-PROCEDURE gdk_drop_get_drag (self: GdkDrop) : [ ADDRESS ];
-(* gdk_drop_get_formats *)
-PROCEDURE gdk_drop_get_formats (self: GdkDrop) : [ ADDRESS ];
-(* gdk_drop_get_surface *)
-PROCEDURE gdk_drop_get_surface (self: GdkDrop) : [ ADDRESS ];
-(* gdk_drop_read_async *)
+
+(* GdkDragAction gdk_drop_get_actions(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_actions (self: GdkDrop) : CARDINAL;
+
+(* GdkDevice *gdk_drop_get_device(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_device (self: GdkDrop) : ADDRESS;
+
+(* GdkDisplay *gdk_drop_get_display(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_display (self: GdkDrop) : ADDRESS;
+
+(* GdkDrag *gdk_drop_get_drag(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_drag (self: GdkDrop) : ADDRESS;
+
+(* GdkContentFormats *gdk_drop_get_formats(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_formats (self: GdkDrop) : ADDRESS;
+
+(* GdkSurface *gdk_drop_get_surface(GdkDrop *self) *)
+PROCEDURE gdk_drop_get_surface (self: GdkDrop) : ADDRESS;
+
+(* void gdk_drop_read_async(GdkDrop *self, const char **mime_types, int io_priority, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) *)
 PROCEDURE gdk_drop_read_async (self: GdkDrop; mime_types: ADDRESS; io_priority: INTEGER; cancellable: ADDRESS; user_data: ADDRESS);
-(* gdk_drop_read_finish *)
-PROCEDURE gdk_drop_read_finish (self: GdkDrop; result: ADDRESS; out_mime_type: ADDRESS) : [ ADDRESS ];
-(* gdk_drop_read_value_async *)
-PROCEDURE gdk_drop_read_value_async (self: GdkDrop; type_: LONGCARD; io_priority: INTEGER; cancellable: ADDRESS; user_data: ADDRESS);
-(* gdk_drop_read_value_finish *)
-PROCEDURE gdk_drop_read_value_finish (self: GdkDrop; result: ADDRESS) : [ ADDRESS ];
-(* gdk_drop_status *)
+
+(* GInputStream *gdk_drop_read_finish(GdkDrop *self, GAsyncResult *result, const char **out_mime_type, GError **error) *)
+PROCEDURE gdk_drop_read_finish (self: GdkDrop; result: ADDRESS; out_mime_type: ADDRESS) : ADDRESS;
+
+(* void gdk_drop_read_value_async(GdkDrop *self, GType type, int io_priority, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) *)
+PROCEDURE gdk_drop_read_value_async (self: GdkDrop; theType: LONGCARD; io_priority: INTEGER; cancellable: ADDRESS; user_data: ADDRESS);
+
+(* const GValue *gdk_drop_read_value_finish(GdkDrop *self, GAsyncResult *result, GError **error) *)
+PROCEDURE gdk_drop_read_value_finish (self: GdkDrop; result: ADDRESS) : ADDRESS;
+
+(* void gdk_drop_status(GdkDrop *self, GdkDragAction actions, GdkDragAction preferred) *)
 PROCEDURE gdk_drop_status (self: GdkDrop; actions: CARDINAL; preferred: CARDINAL);
 
 END GdkDrop.

+ 6 - 1
src/GdkEnums.def

@@ -1,6 +1,11 @@
 DEFINITION MODULE FOR "C" GdkEnums ;
 
-(* Generated by tools/gir2def.py: enumerations and bitfields. *)
+(*
+   m2-GTK4 - Gdk enumerations and bitfields: drag actions, event types,
+   axis flags, modifier masks, memory formats, and the like.  Mapped
+   onto <gdk/gdkenums.h>.  The numeric values match the C enumerators
+   exactly.
+*)
 
 EXPORT UNQUALIFIED
    GDK_ANCHOR_FLIP_X,

+ 57 - 34
src/GdkEvent.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkEvent: an input event.  Mapped onto <gdk/gdkevents.h>.
+
+   Events are refcounted: gdk_event_ref() and gdk_event_unref().  Query
+   the common fields with the getters below; the concrete event types
+   (GdkKeyEvent, GdkButtonEvent, ...) add their own.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -24,42 +30,59 @@ EXPORT UNQUALIFIED
    gdk_event_triggers_context_menu,
    gdk_event_unref;
 
+
 TYPE
    GdkEvent = ADDRESS;
 
-(* gdk_event_get_axes *)
-PROCEDURE gdk_event_get_axes (event: GdkEvent; VAR n_axes: CARDINAL) : [ INTEGER ];
-(* gdk_event_get_axis *)
-PROCEDURE gdk_event_get_axis (event: GdkEvent; axis_use: CARDINAL; VAR value: REAL) : [ INTEGER ];
-(* gdk_event_get_device *)
-PROCEDURE gdk_event_get_device (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_device_tool *)
-PROCEDURE gdk_event_get_device_tool (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_display *)
-PROCEDURE gdk_event_get_display (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_event_sequence *)
-PROCEDURE gdk_event_get_event_sequence (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_event_type *)
-PROCEDURE gdk_event_get_event_type (event: GdkEvent) : [ CARDINAL ];
-(* gdk_event_get_history *)
-PROCEDURE gdk_event_get_history (event: GdkEvent; VAR out_n_coords: CARDINAL);
-(* gdk_event_get_modifier_state *)
-PROCEDURE gdk_event_get_modifier_state (event: GdkEvent) : [ CARDINAL ];
-(* gdk_event_get_pointer_emulated *)
-PROCEDURE gdk_event_get_pointer_emulated (event: GdkEvent) : [ INTEGER ];
-(* gdk_event_get_position *)
-PROCEDURE gdk_event_get_position (event: GdkEvent; VAR x: REAL; VAR y: REAL) : [ INTEGER ];
-(* gdk_event_get_seat *)
-PROCEDURE gdk_event_get_seat (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_surface *)
-PROCEDURE gdk_event_get_surface (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_get_time *)
-PROCEDURE gdk_event_get_time (event: GdkEvent) : [ CARDINAL ];
-(* gdk_event_ref *)
-PROCEDURE gdk_event_ref (event: GdkEvent) : [ ADDRESS ];
-(* gdk_event_triggers_context_menu *)
-PROCEDURE gdk_event_triggers_context_menu (event: GdkEvent) : [ INTEGER ];
-(* gdk_event_unref *)
+(* gboolean gdk_event_get_axes(GdkEvent *event, double **axes, guint *n_axes) *)
+PROCEDURE gdk_event_get_axes (event: GdkEvent; axes: ADDRESS; VAR n_axes: CARDINAL) : INTEGER;
+
+(* gboolean gdk_event_get_axis(GdkEvent *event, GdkAxisUse axis_use, double *value) *)
+PROCEDURE gdk_event_get_axis (event: GdkEvent; axis_use: CARDINAL; VAR value: REAL) : INTEGER;
+
+(* GdkDevice *gdk_event_get_device(GdkEvent *event) *)
+PROCEDURE gdk_event_get_device (event: GdkEvent) : ADDRESS;
+
+(* GdkDeviceTool *gdk_event_get_device_tool(GdkEvent *event) *)
+PROCEDURE gdk_event_get_device_tool (event: GdkEvent) : ADDRESS;
+
+(* GdkDisplay *gdk_event_get_display(GdkEvent *event) *)
+PROCEDURE gdk_event_get_display (event: GdkEvent) : ADDRESS;
+
+(* GdkEventSequence *gdk_event_get_event_sequence(GdkEvent *event) *)
+PROCEDURE gdk_event_get_event_sequence (event: GdkEvent) : ADDRESS;
+
+(* GdkEventType gdk_event_get_event_type(GdkEvent *event) *)
+PROCEDURE gdk_event_get_event_type (event: GdkEvent) : CARDINAL;
+
+(* GdkTimeCoord *gdk_event_get_history(GdkEvent *event, guint *out_n_coords) *)
+PROCEDURE gdk_event_get_history (event: GdkEvent; VAR out_n_coords: CARDINAL) : ADDRESS;
+
+(* GdkModifierType gdk_event_get_modifier_state(GdkEvent *event) *)
+PROCEDURE gdk_event_get_modifier_state (event: GdkEvent) : CARDINAL;
+
+(* gboolean gdk_event_get_pointer_emulated(GdkEvent *event) *)
+PROCEDURE gdk_event_get_pointer_emulated (event: GdkEvent) : INTEGER;
+
+(* gboolean gdk_event_get_position(GdkEvent *event, double *x, double *y) *)
+PROCEDURE gdk_event_get_position (event: GdkEvent; VAR x: REAL; VAR y: REAL) : INTEGER;
+
+(* GdkSeat *gdk_event_get_seat(GdkEvent *event) *)
+PROCEDURE gdk_event_get_seat (event: GdkEvent) : ADDRESS;
+
+(* GdkSurface *gdk_event_get_surface(GdkEvent *event) *)
+PROCEDURE gdk_event_get_surface (event: GdkEvent) : ADDRESS;
+
+(* guint32 gdk_event_get_time(GdkEvent *event) *)
+PROCEDURE gdk_event_get_time (event: GdkEvent) : CARDINAL;
+
+(* GdkEvent *gdk_event_ref(GdkEvent *event) *)
+PROCEDURE gdk_event_ref (event: GdkEvent) : ADDRESS;
+
+(* gboolean gdk_event_triggers_context_menu(GdkEvent *event) *)
+PROCEDURE gdk_event_triggers_context_menu (event: GdkEvent) : INTEGER;
+
+(* void gdk_event_unref(GdkEvent *event) *)
 PROCEDURE gdk_event_unref (event: GdkEvent);
 
 END GdkEvent.

+ 13 - 7
src/GdkFileList.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkFileList ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkFileList: an opaque list of files, as offered by a
+   clipboard or a drop.  Mapped onto <gdk/gdkcontentformats.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -10,14 +13,17 @@ EXPORT UNQUALIFIED
    gdk_file_list_new_from_list,
    gdk_file_list_get_files;
 
+
 TYPE
    GdkFileList = ADDRESS;
 
-(* gdk_file_list_new_from_array *)
-PROCEDURE gdk_file_list_new_from_array (files: ADDRESS) : [ ADDRESS ];
-(* gdk_file_list_new_from_list *)
-PROCEDURE gdk_file_list_new_from_list (files: ADDRESS) : [ ADDRESS ];
-(* gdk_file_list_get_files *)
-PROCEDURE gdk_file_list_get_files (file_list: GdkFileList) : [ ADDRESS ];
+(* GdkFileList *gdk_file_list_new_from_array(GFile **files, gsize n_files) *)
+PROCEDURE gdk_file_list_new_from_array (files: ADDRESS) : ADDRESS;
+
+(* GdkFileList *gdk_file_list_new_from_list(GSList *files) *)
+PROCEDURE gdk_file_list_new_from_list (files: ADDRESS) : ADDRESS;
+
+(* GSList *gdk_file_list_get_files(GdkFileList *file_list) *)
+PROCEDURE gdk_file_list_get_files (file_list: GdkFileList) : ADDRESS;
 
 END GdkFileList.

+ 7 - 3
src/GdkFocusEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkFocusEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkFocusEvent: a keyboard focus-change event.  Mapped onto
+   <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -8,10 +11,11 @@ EXPORT UNQUALIFIED
    GdkFocusEvent,
    gdk_focus_event_get_in;
 
+
 TYPE
    GdkFocusEvent = ADDRESS;
 
-(* gdk_focus_event_get_in *)
-PROCEDURE gdk_focus_event_get_in (event: GdkFocusEvent) : [ INTEGER ];
+(* gboolean gdk_focus_event_get_in(GdkFocusEvent *event) *)
+PROCEDURE gdk_focus_event_get_in (event: GdkFocusEvent) : INTEGER;
 
 END GdkFocusEvent.

+ 32 - 17
src/GdkFrameClock.def

@@ -1,6 +1,11 @@
 DEFINITION MODULE FOR "C" GdkFrameClock ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkFrameClock: a clock that drives frame updates for a
+   surface.  Mapped onto <gdk/gdkframeclock.h>.
+
+   Obtain one from a surface with gdk_surface_get_frame_clock().
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -17,28 +22,38 @@ EXPORT UNQUALIFIED
    gdk_frame_clock_get_timings,
    gdk_frame_clock_request_phase;
 
+
 TYPE
    GdkFrameClock = ADDRESS;
 
-(* gdk_frame_clock_begin_updating *)
+(* void gdk_frame_clock_begin_updating(GdkFrameClock *frame_clock) *)
 PROCEDURE gdk_frame_clock_begin_updating (frame_clock: GdkFrameClock);
-(* gdk_frame_clock_end_updating *)
+
+(* void gdk_frame_clock_end_updating(GdkFrameClock *frame_clock) *)
 PROCEDURE gdk_frame_clock_end_updating (frame_clock: GdkFrameClock);
-(* gdk_frame_clock_get_current_timings *)
-PROCEDURE gdk_frame_clock_get_current_timings (frame_clock: GdkFrameClock) : [ ADDRESS ];
-(* gdk_frame_clock_get_fps *)
-PROCEDURE gdk_frame_clock_get_fps (frame_clock: GdkFrameClock) : [ REAL ];
-(* gdk_frame_clock_get_frame_counter *)
-PROCEDURE gdk_frame_clock_get_frame_counter (frame_clock: GdkFrameClock) : [ LONGINT ];
-(* gdk_frame_clock_get_frame_time *)
-PROCEDURE gdk_frame_clock_get_frame_time (frame_clock: GdkFrameClock) : [ LONGINT ];
-(* gdk_frame_clock_get_history_start *)
-PROCEDURE gdk_frame_clock_get_history_start (frame_clock: GdkFrameClock) : [ LONGINT ];
-(* gdk_frame_clock_get_refresh_info *)
+
+(* GdkFrameTimings *gdk_frame_clock_get_current_timings(GdkFrameClock *frame_clock) *)
+PROCEDURE gdk_frame_clock_get_current_timings (frame_clock: GdkFrameClock) : ADDRESS;
+
+(* double gdk_frame_clock_get_fps(GdkFrameClock *frame_clock) *)
+PROCEDURE gdk_frame_clock_get_fps (frame_clock: GdkFrameClock) : REAL;
+
+(* gint64 gdk_frame_clock_get_frame_counter(GdkFrameClock *frame_clock) *)
+PROCEDURE gdk_frame_clock_get_frame_counter (frame_clock: GdkFrameClock) : LONGINT;
+
+(* gint64 gdk_frame_clock_get_frame_time(GdkFrameClock *frame_clock) *)
+PROCEDURE gdk_frame_clock_get_frame_time (frame_clock: GdkFrameClock) : LONGINT;
+
+(* gint64 gdk_frame_clock_get_history_start(GdkFrameClock *frame_clock) *)
+PROCEDURE gdk_frame_clock_get_history_start (frame_clock: GdkFrameClock) : LONGINT;
+
+(* void gdk_frame_clock_get_refresh_info(GdkFrameClock *frame_clock, gint64 base_time, gint64 *refresh_interval_return, gint64 *presentation_time_return) *)
 PROCEDURE gdk_frame_clock_get_refresh_info (frame_clock: GdkFrameClock; base_time: LONGINT; VAR refresh_interval_return: LONGINT; VAR presentation_time_return: LONGINT);
-(* gdk_frame_clock_get_timings *)
-PROCEDURE gdk_frame_clock_get_timings (frame_clock: GdkFrameClock; frame_counter: LONGINT) : [ ADDRESS ];
-(* gdk_frame_clock_request_phase *)
+
+(* GdkFrameTimings *gdk_frame_clock_get_timings(GdkFrameClock *frame_clock, gint64 frame_counter) *)
+PROCEDURE gdk_frame_clock_get_timings (frame_clock: GdkFrameClock; frame_counter: LONGINT) : ADDRESS;
+
+(* void gdk_frame_clock_request_phase(GdkFrameClock *frame_clock, GdkFrameClockPhase phase) *)
 PROCEDURE gdk_frame_clock_request_phase (frame_clock: GdkFrameClock; phase: CARDINAL);
 
 END GdkFrameClock.

+ 30 - 16
src/GdkFrameTimings.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkFrameTimings ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkFrameTimings: timing information for a single frame.
+   Mapped onto <gdk/gdkframetimings.h>.
+
+   Obtained from a GdkFrameClock; refcounted with gdk_frame_timings_ref()
+   and gdk_frame_timings_unref().  Times are in microseconds.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,24 +21,32 @@ EXPORT UNQUALIFIED
    gdk_frame_timings_ref,
    gdk_frame_timings_unref;
 
+
 TYPE
    GdkFrameTimings = ADDRESS;
 
-(* gdk_frame_timings_get_complete *)
-PROCEDURE gdk_frame_timings_get_complete (timings: GdkFrameTimings) : [ INTEGER ];
-(* gdk_frame_timings_get_frame_counter *)
-PROCEDURE gdk_frame_timings_get_frame_counter (timings: GdkFrameTimings) : [ LONGINT ];
-(* gdk_frame_timings_get_frame_time *)
-PROCEDURE gdk_frame_timings_get_frame_time (timings: GdkFrameTimings) : [ LONGINT ];
-(* gdk_frame_timings_get_predicted_presentation_time *)
-PROCEDURE gdk_frame_timings_get_predicted_presentation_time (timings: GdkFrameTimings) : [ LONGINT ];
-(* gdk_frame_timings_get_presentation_time *)
-PROCEDURE gdk_frame_timings_get_presentation_time (timings: GdkFrameTimings) : [ LONGINT ];
-(* gdk_frame_timings_get_refresh_interval *)
-PROCEDURE gdk_frame_timings_get_refresh_interval (timings: GdkFrameTimings) : [ LONGINT ];
-(* gdk_frame_timings_ref *)
-PROCEDURE gdk_frame_timings_ref (timings: GdkFrameTimings) : [ ADDRESS ];
-(* gdk_frame_timings_unref *)
+(* gboolean gdk_frame_timings_get_complete(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_complete (timings: GdkFrameTimings) : INTEGER;
+
+(* gint64 gdk_frame_timings_get_frame_counter(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_frame_counter (timings: GdkFrameTimings) : LONGINT;
+
+(* gint64 gdk_frame_timings_get_frame_time(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_frame_time (timings: GdkFrameTimings) : LONGINT;
+
+(* gint64 gdk_frame_timings_get_predicted_presentation_time(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_predicted_presentation_time (timings: GdkFrameTimings) : LONGINT;
+
+(* gint64 gdk_frame_timings_get_presentation_time(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_presentation_time (timings: GdkFrameTimings) : LONGINT;
+
+(* gint64 gdk_frame_timings_get_refresh_interval(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_get_refresh_interval (timings: GdkFrameTimings) : LONGINT;
+
+(* GdkFrameTimings *gdk_frame_timings_ref(GdkFrameTimings *timings) *)
+PROCEDURE gdk_frame_timings_ref (timings: GdkFrameTimings) : ADDRESS;
+
+(* void gdk_frame_timings_unref(GdkFrameTimings *timings) *)
 PROCEDURE gdk_frame_timings_unref (timings: GdkFrameTimings);
 
 END GdkFrameTimings.

+ 153 - 57
src/GdkFunctions.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkFunctions ;
 
-(* Generated by tools/gir2def.py: namespace-level functions. *)
+(*
+   m2-GTK4 - GdkFunctions: drawing, event, key and content helpers.
+   Mapped onto <gdk/gdk.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -36,65 +39,158 @@ EXPORT UNQUALIFIED
    gdk_set_allowed_backends,
    gdk_unicode_to_keyval;
 
-(* gdk_cairo_draw_from_gl *)
-PROCEDURE gdk_cairo_draw_from_gl (cr: ADDRESS; surface: ADDRESS; source: INTEGER; source_type: INTEGER; buffer_scale: INTEGER; x: INTEGER; y: INTEGER; width: INTEGER; height: INTEGER);
-(* gdk_cairo_rectangle *)
+(* void gdk_cairo_draw_from_gl(cairo_t *cr, GdkSurface *surface, int source,
+                                int source_type, int buffer_scale, int x,
+                                int y, int width, int height) *)
+PROCEDURE gdk_cairo_draw_from_gl (cr: ADDRESS; surface: ADDRESS;
+                                  source: INTEGER; source_type: INTEGER;
+                                  buffer_scale: INTEGER; x: INTEGER;
+                                  y: INTEGER; width: INTEGER;
+                                  height: INTEGER);
+
+(* void gdk_cairo_rectangle(cairo_t *cr, const GdkRectangle *rectangle) *)
 PROCEDURE gdk_cairo_rectangle (cr: ADDRESS; rectangle: ADDRESS);
-(* gdk_cairo_region *)
+
+(* void gdk_cairo_region(cairo_t *cr, const cairo_region_t *region) *)
 PROCEDURE gdk_cairo_region (cr: ADDRESS; region: ADDRESS);
-(* gdk_cairo_region_create_from_surface *)
-PROCEDURE gdk_cairo_region_create_from_surface (surface: ADDRESS) : [ ADDRESS ];
-(* gdk_cairo_set_source_pixbuf *)
-PROCEDURE gdk_cairo_set_source_pixbuf (cr: ADDRESS; pixbuf: ADDRESS; pixbuf_x: REAL; pixbuf_y: REAL);
-(* gdk_cairo_set_source_rgba *)
+
+(* cairo_region_t *gdk_cairo_region_create_from_surface(cairo_surface_t *surface) *)
+PROCEDURE gdk_cairo_region_create_from_surface (surface: ADDRESS) : ADDRESS;
+
+(* void gdk_cairo_set_source_pixbuf(cairo_t *cr, const GdkPixbuf *pixbuf,
+                                     double pixbuf_x, double pixbuf_y) *)
+PROCEDURE gdk_cairo_set_source_pixbuf (cr: ADDRESS; pixbuf: ADDRESS;
+                                       pixbuf_x: REAL; pixbuf_y: REAL);
+
+(* void gdk_cairo_set_source_rgba(cairo_t *cr, const GdkRGBA *rgba) *)
 PROCEDURE gdk_cairo_set_source_rgba (cr: ADDRESS; rgba: ADDRESS);
-(* gdk_content_deserialize_async *)
-PROCEDURE gdk_content_deserialize_async (stream: ADDRESS; mime_type: ARRAY OF CHAR; type_: LONGCARD; io_priority: INTEGER; cancellable: ADDRESS; user_data: ADDRESS);
-(* gdk_content_deserialize_finish *)
-PROCEDURE gdk_content_deserialize_finish (result: ADDRESS; value: ADDRESS) : [ INTEGER ];
-(* gdk_content_register_deserializer *)
-PROCEDURE gdk_content_register_deserializer (mime_type: ARRAY OF CHAR; type_: LONGCARD; data: ADDRESS; notify: ADDRESS);
-(* gdk_content_register_serializer *)
-PROCEDURE gdk_content_register_serializer (type_: LONGCARD; mime_type: ARRAY OF CHAR; data: ADDRESS; notify: ADDRESS);
-(* gdk_content_serialize_async *)
-PROCEDURE gdk_content_serialize_async (stream: ADDRESS; mime_type: ARRAY OF CHAR; value: ADDRESS; io_priority: INTEGER; cancellable: ADDRESS; user_data: ADDRESS);
-(* gdk_content_serialize_finish *)
-PROCEDURE gdk_content_serialize_finish (result: ADDRESS) : [ INTEGER ];
-(* gdk_events_get_angle *)
-PROCEDURE gdk_events_get_angle (event1: ADDRESS; event2: ADDRESS; VAR angle: REAL) : [ INTEGER ];
-(* gdk_events_get_center *)
-PROCEDURE gdk_events_get_center (event1: ADDRESS; event2: ADDRESS; VAR x: REAL; VAR y: REAL) : [ INTEGER ];
-(* gdk_events_get_distance *)
-PROCEDURE gdk_events_get_distance (event1: ADDRESS; event2: ADDRESS; VAR distance: REAL) : [ INTEGER ];
-(* gdk_intern_mime_type *)
-PROCEDURE gdk_intern_mime_type (string: ARRAY OF CHAR) : [ ADDRESS ];
-(* gdk_keyval_convert_case *)
-PROCEDURE gdk_keyval_convert_case (symbol: CARDINAL; VAR lower: CARDINAL; VAR upper: CARDINAL);
-(* gdk_keyval_from_name *)
-PROCEDURE gdk_keyval_from_name (keyval_name: ARRAY OF CHAR) : [ CARDINAL ];
-(* gdk_keyval_is_lower *)
-PROCEDURE gdk_keyval_is_lower (keyval: CARDINAL) : [ INTEGER ];
-(* gdk_keyval_is_upper *)
-PROCEDURE gdk_keyval_is_upper (keyval: CARDINAL) : [ INTEGER ];
-(* gdk_keyval_name *)
-PROCEDURE gdk_keyval_name (keyval: CARDINAL) : [ ADDRESS ];
-(* gdk_keyval_to_lower *)
-PROCEDURE gdk_keyval_to_lower (keyval: CARDINAL) : [ CARDINAL ];
-(* gdk_keyval_to_unicode *)
-PROCEDURE gdk_keyval_to_unicode (keyval: CARDINAL) : [ CARDINAL ];
-(* gdk_keyval_to_upper *)
-PROCEDURE gdk_keyval_to_upper (keyval: CARDINAL) : [ CARDINAL ];
-(* gdk_pango_layout_get_clip_region *)
-PROCEDURE gdk_pango_layout_get_clip_region (layout: ADDRESS; x_origin: INTEGER; y_origin: INTEGER; index_ranges: ADDRESS; n_ranges: INTEGER) : [ ADDRESS ];
-(* gdk_pango_layout_line_get_clip_region *)
-PROCEDURE gdk_pango_layout_line_get_clip_region (line: ADDRESS; x_origin: INTEGER; y_origin: INTEGER; index_ranges: ADDRESS; n_ranges: INTEGER) : [ ADDRESS ];
-(* gdk_pixbuf_get_from_surface *)
-PROCEDURE gdk_pixbuf_get_from_surface (surface: ADDRESS; src_x: INTEGER; src_y: INTEGER; width: INTEGER; height: INTEGER) : [ ADDRESS ];
-(* gdk_pixbuf_get_from_texture *)
-PROCEDURE gdk_pixbuf_get_from_texture (texture: ADDRESS) : [ ADDRESS ];
-(* gdk_set_allowed_backends *)
+
+(* void gdk_content_deserialize_async(GInputStream *stream,
+                                       const char *mime_type, GType type,
+                                       int io_priority,
+                                       GCancellable *cancellable,
+                                       gpointer user_data) *)
+PROCEDURE gdk_content_deserialize_async (stream: ADDRESS;
+                                         mime_type: ARRAY OF CHAR;
+                                         theType: LONGCARD;
+                                         io_priority: INTEGER;
+                                         cancellable: ADDRESS;
+                                         user_data: ADDRESS);
+
+(* gboolean gdk_content_deserialize_finish(GAsyncResult *result, GValue *value) *)
+PROCEDURE gdk_content_deserialize_finish (result: ADDRESS;
+                                          value: ADDRESS) : INTEGER;
+
+(* void gdk_content_register_deserializer(const char *mime_type, GType type,
+                                           gpointer data,
+                                           GDestroyNotify notify) *)
+PROCEDURE gdk_content_register_deserializer (mime_type: ARRAY OF CHAR;
+                                             theType: LONGCARD;
+                                             data: ADDRESS;
+                                             notify: ADDRESS);
+
+(* void gdk_content_register_serializer(GType type, const char *mime_type,
+                                         gpointer data,
+                                         GDestroyNotify notify) *)
+PROCEDURE gdk_content_register_serializer (theType: LONGCARD;
+                                           mime_type: ARRAY OF CHAR;
+                                           data: ADDRESS;
+                                           notify: ADDRESS);
+
+(* void gdk_content_serialize_async(GOutputStream *stream,
+                                     const char *mime_type,
+                                     const GValue *value, int io_priority,
+                                     GCancellable *cancellable,
+                                     gpointer user_data) *)
+PROCEDURE gdk_content_serialize_async (stream: ADDRESS;
+                                       mime_type: ARRAY OF CHAR;
+                                       value: ADDRESS;
+                                       io_priority: INTEGER;
+                                       cancellable: ADDRESS;
+                                       user_data: ADDRESS);
+
+(* gboolean gdk_content_serialize_finish(GAsyncResult *result) *)
+PROCEDURE gdk_content_serialize_finish (result: ADDRESS) : INTEGER;
+
+(* gboolean gdk_events_get_angle(GdkEvent *event1, GdkEvent *event2,
+                                  double *angle) *)
+PROCEDURE gdk_events_get_angle (event1: ADDRESS; event2: ADDRESS;
+                                VAR angle: REAL) : INTEGER;
+
+(* gboolean gdk_events_get_center(GdkEvent *event1, GdkEvent *event2,
+                                   double *x, double *y) *)
+PROCEDURE gdk_events_get_center (event1: ADDRESS; event2: ADDRESS;
+                                 VAR x: REAL; VAR y: REAL) : INTEGER;
+
+(* gboolean gdk_events_get_distance(GdkEvent *event1, GdkEvent *event2,
+                                     double *distance) *)
+PROCEDURE gdk_events_get_distance (event1: ADDRESS; event2: ADDRESS;
+                                   VAR distance: REAL) : INTEGER;
+
+(* const char *gdk_intern_mime_type(const char *string) *)
+PROCEDURE gdk_intern_mime_type (string: ARRAY OF CHAR) : ADDRESS;
+
+(* void gdk_keyval_convert_case(guint symbol, guint *lower, guint *upper) *)
+PROCEDURE gdk_keyval_convert_case (symbol: CARDINAL;
+                                   VAR lower: CARDINAL;
+                                   VAR upper: CARDINAL);
+
+(* guint gdk_keyval_from_name(const char *keyval_name) *)
+PROCEDURE gdk_keyval_from_name (keyval_name: ARRAY OF CHAR) : CARDINAL;
+
+(* gboolean gdk_keyval_is_lower(guint keyval) *)
+PROCEDURE gdk_keyval_is_lower (keyval: CARDINAL) : INTEGER;
+
+(* gboolean gdk_keyval_is_upper(guint keyval) *)
+PROCEDURE gdk_keyval_is_upper (keyval: CARDINAL) : INTEGER;
+
+(* const char *gdk_keyval_name(guint keyval) *)
+PROCEDURE gdk_keyval_name (keyval: CARDINAL) : ADDRESS;
+
+(* guint gdk_keyval_to_lower(guint keyval) *)
+PROCEDURE gdk_keyval_to_lower (keyval: CARDINAL) : CARDINAL;
+
+(* guint32 gdk_keyval_to_unicode(guint keyval) *)
+PROCEDURE gdk_keyval_to_unicode (keyval: CARDINAL) : CARDINAL;
+
+(* guint gdk_keyval_to_upper(guint keyval) *)
+PROCEDURE gdk_keyval_to_upper (keyval: CARDINAL) : CARDINAL;
+
+(* cairo_region_t *gdk_pango_layout_get_clip_region(PangoLayout *layout,
+                                                     int x_origin,
+                                                     int y_origin,
+                                                     const int *index_ranges,
+                                                     int n_ranges) *)
+PROCEDURE gdk_pango_layout_get_clip_region (layout: ADDRESS;
+                                            x_origin: INTEGER;
+                                            y_origin: INTEGER;
+                                            index_ranges: ADDRESS;
+                                            n_ranges: INTEGER) : ADDRESS;
+
+(* cairo_region_t *gdk_pango_layout_line_get_clip_region(
+                     PangoLayoutLine *line, int x_origin, int y_origin,
+                     const int *index_ranges, int n_ranges) *)
+PROCEDURE gdk_pango_layout_line_get_clip_region (line: ADDRESS;
+                                                 x_origin: INTEGER;
+                                                 y_origin: INTEGER;
+                                                 index_ranges: ADDRESS;
+                                                 n_ranges: INTEGER) : ADDRESS;
+
+(* GdkPixbuf *gdk_pixbuf_get_from_surface(cairo_surface_t *surface,
+                                           int src_x, int src_y,
+                                           int width, int height) *)
+PROCEDURE gdk_pixbuf_get_from_surface (surface: ADDRESS;
+                                       src_x: INTEGER; src_y: INTEGER;
+                                       width: INTEGER;
+                                       height: INTEGER) : ADDRESS;
+
+(* GdkPixbuf *gdk_pixbuf_get_from_texture(GdkTexture *texture) *)
+PROCEDURE gdk_pixbuf_get_from_texture (texture: ADDRESS) : ADDRESS;
+
+(* void gdk_set_allowed_backends(const char *backends) *)
 PROCEDURE gdk_set_allowed_backends (backends: ARRAY OF CHAR);
-(* gdk_unicode_to_keyval *)
-PROCEDURE gdk_unicode_to_keyval (wc: CARDINAL) : [ CARDINAL ];
+
+(* guint gdk_unicode_to_keyval(guint32 wc) *)
+PROCEDURE gdk_unicode_to_keyval (wc: CARDINAL) : CARDINAL;
 
 END GdkFunctions.

+ 15 - 4
src/GdkGLTexture.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkGLTexture ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkGLTexture: a texture backed by a GL texture.
+   Mapped onto <gdk/gdkgltexture.h>.
+
+   gdk_gl_texture_new() is deprecated; build GL textures with
+   GdkGLTextureBuilder instead.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -12,9 +18,14 @@ EXPORT UNQUALIFIED
 TYPE
    GdkGLTexture = ADDRESS;
 
-(* gdk_gl_texture_new *)
-PROCEDURE gdk_gl_texture_new (context: ADDRESS; id: CARDINAL; width: INTEGER; height: INTEGER; destroy: ADDRESS; data: ADDRESS) : [ ADDRESS ];
-(* gdk_gl_texture_release *)
+(* GdkTexture *gdk_gl_texture_new(GdkGLContext *context, guint id,
+                                  int width, int height,
+                                  GDestroyNotify destroy, gpointer data) *)
+PROCEDURE gdk_gl_texture_new (context: ADDRESS; id: CARDINAL;
+                              width: INTEGER; height: INTEGER;
+                              destroy: ADDRESS; data: ADDRESS) : GdkGLTexture;
+
+(* void gdk_gl_texture_release(GdkGLTexture *self) *)
 PROCEDURE gdk_gl_texture_release (self: GdkGLTexture);
 
 END GdkGLTexture.

+ 100 - 45
src/GdkGLTextureBuilder.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkGLTextureBuilder ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkGLTextureBuilder: builds a GdkTexture from a GL texture.
+   Mapped onto <gdk/gdkgltexturebuilder.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -32,49 +35,101 @@ EXPORT UNQUALIFIED
 TYPE
    GdkGLTextureBuilder = ADDRESS;
 
-(* gdk_gl_texture_builder_new *)
-PROCEDURE gdk_gl_texture_builder_new () : [ ADDRESS ];
-(* gdk_gl_texture_builder_build *)
-PROCEDURE gdk_gl_texture_builder_build (self: GdkGLTextureBuilder; destroy: ADDRESS; data: ADDRESS) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_color_state *)
-PROCEDURE gdk_gl_texture_builder_get_color_state (self: GdkGLTextureBuilder) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_context *)
-PROCEDURE gdk_gl_texture_builder_get_context (self: GdkGLTextureBuilder) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_format *)
-PROCEDURE gdk_gl_texture_builder_get_format (self: GdkGLTextureBuilder) : [ CARDINAL ];
-(* gdk_gl_texture_builder_get_has_mipmap *)
-PROCEDURE gdk_gl_texture_builder_get_has_mipmap (self: GdkGLTextureBuilder) : [ INTEGER ];
-(* gdk_gl_texture_builder_get_height *)
-PROCEDURE gdk_gl_texture_builder_get_height (self: GdkGLTextureBuilder) : [ INTEGER ];
-(* gdk_gl_texture_builder_get_id *)
-PROCEDURE gdk_gl_texture_builder_get_id (self: GdkGLTextureBuilder) : [ CARDINAL ];
-(* gdk_gl_texture_builder_get_sync *)
-PROCEDURE gdk_gl_texture_builder_get_sync (self: GdkGLTextureBuilder) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_update_region *)
-PROCEDURE gdk_gl_texture_builder_get_update_region (self: GdkGLTextureBuilder) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_update_texture *)
-PROCEDURE gdk_gl_texture_builder_get_update_texture (self: GdkGLTextureBuilder) : [ ADDRESS ];
-(* gdk_gl_texture_builder_get_width *)
-PROCEDURE gdk_gl_texture_builder_get_width (self: GdkGLTextureBuilder) : [ INTEGER ];
-(* gdk_gl_texture_builder_set_color_state *)
-PROCEDURE gdk_gl_texture_builder_set_color_state (self: GdkGLTextureBuilder; color_state: ADDRESS);
-(* gdk_gl_texture_builder_set_context *)
-PROCEDURE gdk_gl_texture_builder_set_context (self: GdkGLTextureBuilder; context: ADDRESS);
-(* gdk_gl_texture_builder_set_format *)
-PROCEDURE gdk_gl_texture_builder_set_format (self: GdkGLTextureBuilder; format: CARDINAL);
-(* gdk_gl_texture_builder_set_has_mipmap *)
-PROCEDURE gdk_gl_texture_builder_set_has_mipmap (self: GdkGLTextureBuilder; has_mipmap: INTEGER);
-(* gdk_gl_texture_builder_set_height *)
-PROCEDURE gdk_gl_texture_builder_set_height (self: GdkGLTextureBuilder; height: INTEGER);
-(* gdk_gl_texture_builder_set_id *)
-PROCEDURE gdk_gl_texture_builder_set_id (self: GdkGLTextureBuilder; id: CARDINAL);
-(* gdk_gl_texture_builder_set_sync *)
-PROCEDURE gdk_gl_texture_builder_set_sync (self: GdkGLTextureBuilder; sync: ADDRESS);
-(* gdk_gl_texture_builder_set_update_region *)
-PROCEDURE gdk_gl_texture_builder_set_update_region (self: GdkGLTextureBuilder; region: ADDRESS);
-(* gdk_gl_texture_builder_set_update_texture *)
-PROCEDURE gdk_gl_texture_builder_set_update_texture (self: GdkGLTextureBuilder; texture: ADDRESS);
-(* gdk_gl_texture_builder_set_width *)
-PROCEDURE gdk_gl_texture_builder_set_width (self: GdkGLTextureBuilder; width: INTEGER);
+(* GdkGLTextureBuilder *gdk_gl_texture_builder_new(void) *)
+PROCEDURE gdk_gl_texture_builder_new () : GdkGLTextureBuilder;
+
+(* GdkTexture *gdk_gl_texture_builder_build(GdkGLTextureBuilder *self,
+                                            GDestroyNotify destroy,
+                                            gpointer data) *)
+PROCEDURE gdk_gl_texture_builder_build (self: GdkGLTextureBuilder;
+                                        destroy: ADDRESS;
+                                        data: ADDRESS) : ADDRESS;
+
+(* GdkColorState *gdk_gl_texture_builder_get_color_state(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_color_state (self: GdkGLTextureBuilder)
+                                                 : ADDRESS;
+
+(* GdkGLContext *gdk_gl_texture_builder_get_context(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_context (self: GdkGLTextureBuilder)
+                                             : ADDRESS;
+
+(* GdkMemoryFormat gdk_gl_texture_builder_get_format(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_format (self: GdkGLTextureBuilder)
+                                            : CARDINAL;
+
+(* gboolean gdk_gl_texture_builder_get_has_mipmap(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_has_mipmap (self: GdkGLTextureBuilder)
+                                                : INTEGER;
+
+(* int gdk_gl_texture_builder_get_height(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_height (self: GdkGLTextureBuilder)
+                                            : INTEGER;
+
+(* guint gdk_gl_texture_builder_get_id(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_id (self: GdkGLTextureBuilder) : CARDINAL;
+
+(* gpointer gdk_gl_texture_builder_get_sync(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_sync (self: GdkGLTextureBuilder) : ADDRESS;
+
+(* cairo_region_t *gdk_gl_texture_builder_get_update_region(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_update_region (self: GdkGLTextureBuilder)
+                                                   : ADDRESS;
+
+(* GdkTexture *gdk_gl_texture_builder_get_update_texture(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_update_texture (self: GdkGLTextureBuilder)
+                                                    : ADDRESS;
+
+(* int gdk_gl_texture_builder_get_width(GdkGLTextureBuilder *self) *)
+PROCEDURE gdk_gl_texture_builder_get_width (self: GdkGLTextureBuilder)
+                                           : INTEGER;
+
+(* void gdk_gl_texture_builder_set_color_state(GdkGLTextureBuilder *self,
+                                                GdkColorState *color_state) *)
+PROCEDURE gdk_gl_texture_builder_set_color_state (self: GdkGLTextureBuilder;
+                                                  color_state: ADDRESS);
+
+(* void gdk_gl_texture_builder_set_context(GdkGLTextureBuilder *self,
+                                            GdkGLContext *context) *)
+PROCEDURE gdk_gl_texture_builder_set_context (self: GdkGLTextureBuilder;
+                                              context: ADDRESS);
+
+(* void gdk_gl_texture_builder_set_format(GdkGLTextureBuilder *self,
+                                           GdkMemoryFormat format) *)
+PROCEDURE gdk_gl_texture_builder_set_format (self: GdkGLTextureBuilder;
+                                             format: CARDINAL);
+
+(* void gdk_gl_texture_builder_set_has_mipmap(GdkGLTextureBuilder *self,
+                                               gboolean has_mipmap) *)
+PROCEDURE gdk_gl_texture_builder_set_has_mipmap (self: GdkGLTextureBuilder;
+                                                 has_mipmap: INTEGER);
+
+(* void gdk_gl_texture_builder_set_height(GdkGLTextureBuilder *self,
+                                           int height) *)
+PROCEDURE gdk_gl_texture_builder_set_height (self: GdkGLTextureBuilder;
+                                             height: INTEGER);
+
+(* void gdk_gl_texture_builder_set_id(GdkGLTextureBuilder *self, guint id) *)
+PROCEDURE gdk_gl_texture_builder_set_id (self: GdkGLTextureBuilder;
+                                         id: CARDINAL);
+
+(* void gdk_gl_texture_builder_set_sync(GdkGLTextureBuilder *self,
+                                         gpointer sync) *)
+PROCEDURE gdk_gl_texture_builder_set_sync (self: GdkGLTextureBuilder;
+                                           sync: ADDRESS);
+
+(* void gdk_gl_texture_builder_set_update_region(GdkGLTextureBuilder *self,
+                                                  cairo_region_t *region) *)
+PROCEDURE gdk_gl_texture_builder_set_update_region
+              (self: GdkGLTextureBuilder; region: ADDRESS);
+
+(* void gdk_gl_texture_builder_set_update_texture(GdkGLTextureBuilder *self,
+                                                   GdkTexture *texture) *)
+PROCEDURE gdk_gl_texture_builder_set_update_texture
+              (self: GdkGLTextureBuilder; texture: ADDRESS);
+
+(* void gdk_gl_texture_builder_set_width(GdkGLTextureBuilder *self,
+                                          int width) *)
+PROCEDURE gdk_gl_texture_builder_set_width (self: GdkGLTextureBuilder;
+                                            width: INTEGER);
 
 END GdkGLTextureBuilder.

+ 11 - 5
src/GdkGrabBrokenEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkGrabBrokenEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkGrabBrokenEvent: an event emitted when a grab is broken.
+   Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -12,9 +15,12 @@ EXPORT UNQUALIFIED
 TYPE
    GdkGrabBrokenEvent = ADDRESS;
 
-(* gdk_grab_broken_event_get_grab_surface *)
-PROCEDURE gdk_grab_broken_event_get_grab_surface (event: GdkGrabBrokenEvent) : [ ADDRESS ];
-(* gdk_grab_broken_event_get_implicit *)
-PROCEDURE gdk_grab_broken_event_get_implicit (event: GdkGrabBrokenEvent) : [ INTEGER ];
+(* GdkSurface *gdk_grab_broken_event_get_grab_surface(GdkGrabBrokenEvent *event) *)
+PROCEDURE gdk_grab_broken_event_get_grab_surface (event: GdkGrabBrokenEvent)
+                                                : ADDRESS;
+
+(* gboolean gdk_grab_broken_event_get_implicit(GdkGrabBrokenEvent *event) *)
+PROCEDURE gdk_grab_broken_event_get_implicit (event: GdkGrabBrokenEvent)
+                                            : INTEGER;
 
 END GdkGrabBrokenEvent.

+ 36 - 17
src/GdkKeyEvent.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkKeyEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkKeyEvent: a keyboard event.
+   Mapped onto <gdk/gdkevents.h>.
+
+   Test an event against a shortcut with gdk_key_event_matches(); the
+   event must first be a key event (query its type in the GdkEvent).
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,21 +24,34 @@ EXPORT UNQUALIFIED
 TYPE
    GdkKeyEvent = ADDRESS;
 
-(* gdk_key_event_get_consumed_modifiers *)
-PROCEDURE gdk_key_event_get_consumed_modifiers (event: GdkKeyEvent) : [ CARDINAL ];
-(* gdk_key_event_get_keycode *)
-PROCEDURE gdk_key_event_get_keycode (event: GdkKeyEvent) : [ CARDINAL ];
-(* gdk_key_event_get_keyval *)
-PROCEDURE gdk_key_event_get_keyval (event: GdkKeyEvent) : [ CARDINAL ];
-(* gdk_key_event_get_layout *)
-PROCEDURE gdk_key_event_get_layout (event: GdkKeyEvent) : [ CARDINAL ];
-(* gdk_key_event_get_level *)
-PROCEDURE gdk_key_event_get_level (event: GdkKeyEvent) : [ CARDINAL ];
-(* gdk_key_event_get_match *)
-PROCEDURE gdk_key_event_get_match (event: GdkKeyEvent; VAR keyval: CARDINAL; VAR modifiers: CARDINAL) : [ INTEGER ];
-(* gdk_key_event_is_modifier *)
-PROCEDURE gdk_key_event_is_modifier (event: GdkKeyEvent) : [ INTEGER ];
-(* gdk_key_event_matches *)
-PROCEDURE gdk_key_event_matches (event: GdkKeyEvent; keyval: CARDINAL; modifiers: CARDINAL) : [ CARDINAL ];
+(* GdkModifierType gdk_key_event_get_consumed_modifiers(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_get_consumed_modifiers (event: GdkKeyEvent) : CARDINAL;
+
+(* guint gdk_key_event_get_keycode(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_get_keycode (event: GdkKeyEvent) : CARDINAL;
+
+(* guint gdk_key_event_get_keyval(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_get_keyval (event: GdkKeyEvent) : CARDINAL;
+
+(* guint gdk_key_event_get_layout(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_get_layout (event: GdkKeyEvent) : CARDINAL;
+
+(* guint gdk_key_event_get_level(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_get_level (event: GdkKeyEvent) : CARDINAL;
+
+(* gboolean gdk_key_event_get_match(GdkKeyEvent *event, guint *keyval,
+                                    GdkModifierType *modifiers) *)
+PROCEDURE gdk_key_event_get_match (event: GdkKeyEvent;
+                                   VAR keyval: CARDINAL;
+                                   VAR modifiers: CARDINAL) : INTEGER;
+
+(* gboolean gdk_key_event_is_modifier(GdkKeyEvent *event) *)
+PROCEDURE gdk_key_event_is_modifier (event: GdkKeyEvent) : INTEGER;
+
+(* GdkKeyMatch gdk_key_event_matches(GdkKeyEvent *event, guint keyval,
+                                     GdkModifierType modifiers) *)
+PROCEDURE gdk_key_event_matches (event: GdkKeyEvent;
+                                 keyval: CARDINAL;
+                                 modifiers: CARDINAL) : CARDINAL;
 
 END GdkKeyEvent.

+ 10 - 3
src/GdkMemoryTexture.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkMemoryTexture ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkMemoryTexture: a texture backed by memory.
+   Mapped onto <gdk/gdkmemorytexture.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,11 @@ EXPORT UNQUALIFIED
 TYPE
    GdkMemoryTexture = ADDRESS;
 
-(* gdk_memory_texture_new *)
-PROCEDURE gdk_memory_texture_new (width: INTEGER; height: INTEGER; format: CARDINAL; bytes: ADDRESS; stride: LONGCARD) : [ ADDRESS ];
+(* GdkTexture *gdk_memory_texture_new(int width, int height,
+                                      GdkMemoryFormat format, GBytes *bytes,
+                                      gsize stride) *)
+PROCEDURE gdk_memory_texture_new (width: INTEGER; height: INTEGER;
+                                  format: CARDINAL; bytes: ADDRESS;
+                                  stride: LONGCARD) : GdkMemoryTexture;
 
 END GdkMemoryTexture.

+ 86 - 37
src/GdkMemoryTextureBuilder.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkMemoryTextureBuilder ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkMemoryTextureBuilder: builds a GdkTexture from memory.
+   Mapped onto <gdk/gdkmemorytexturebuilder.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -28,41 +31,87 @@ EXPORT UNQUALIFIED
 TYPE
    GdkMemoryTextureBuilder = ADDRESS;
 
-(* gdk_memory_texture_builder_new *)
-PROCEDURE gdk_memory_texture_builder_new () : [ ADDRESS ];
-(* gdk_memory_texture_builder_build *)
-PROCEDURE gdk_memory_texture_builder_build (self: GdkMemoryTextureBuilder) : [ ADDRESS ];
-(* gdk_memory_texture_builder_get_bytes *)
-PROCEDURE gdk_memory_texture_builder_get_bytes (self: GdkMemoryTextureBuilder) : [ ADDRESS ];
-(* gdk_memory_texture_builder_get_color_state *)
-PROCEDURE gdk_memory_texture_builder_get_color_state (self: GdkMemoryTextureBuilder) : [ ADDRESS ];
-(* gdk_memory_texture_builder_get_format *)
-PROCEDURE gdk_memory_texture_builder_get_format (self: GdkMemoryTextureBuilder) : [ CARDINAL ];
-(* gdk_memory_texture_builder_get_height *)
-PROCEDURE gdk_memory_texture_builder_get_height (self: GdkMemoryTextureBuilder) : [ INTEGER ];
-(* gdk_memory_texture_builder_get_stride *)
-PROCEDURE gdk_memory_texture_builder_get_stride (self: GdkMemoryTextureBuilder) : [ LONGCARD ];
-(* gdk_memory_texture_builder_get_update_region *)
-PROCEDURE gdk_memory_texture_builder_get_update_region (self: GdkMemoryTextureBuilder) : [ ADDRESS ];
-(* gdk_memory_texture_builder_get_update_texture *)
-PROCEDURE gdk_memory_texture_builder_get_update_texture (self: GdkMemoryTextureBuilder) : [ ADDRESS ];
-(* gdk_memory_texture_builder_get_width *)
-PROCEDURE gdk_memory_texture_builder_get_width (self: GdkMemoryTextureBuilder) : [ INTEGER ];
-(* gdk_memory_texture_builder_set_bytes *)
-PROCEDURE gdk_memory_texture_builder_set_bytes (self: GdkMemoryTextureBuilder; bytes: ADDRESS);
-(* gdk_memory_texture_builder_set_color_state *)
-PROCEDURE gdk_memory_texture_builder_set_color_state (self: GdkMemoryTextureBuilder; color_state: ADDRESS);
-(* gdk_memory_texture_builder_set_format *)
-PROCEDURE gdk_memory_texture_builder_set_format (self: GdkMemoryTextureBuilder; format: CARDINAL);
-(* gdk_memory_texture_builder_set_height *)
-PROCEDURE gdk_memory_texture_builder_set_height (self: GdkMemoryTextureBuilder; height: INTEGER);
-(* gdk_memory_texture_builder_set_stride *)
-PROCEDURE gdk_memory_texture_builder_set_stride (self: GdkMemoryTextureBuilder; stride: LONGCARD);
-(* gdk_memory_texture_builder_set_update_region *)
-PROCEDURE gdk_memory_texture_builder_set_update_region (self: GdkMemoryTextureBuilder; region: ADDRESS);
-(* gdk_memory_texture_builder_set_update_texture *)
-PROCEDURE gdk_memory_texture_builder_set_update_texture (self: GdkMemoryTextureBuilder; texture: ADDRESS);
-(* gdk_memory_texture_builder_set_width *)
-PROCEDURE gdk_memory_texture_builder_set_width (self: GdkMemoryTextureBuilder; width: INTEGER);
+(* GdkMemoryTextureBuilder *gdk_memory_texture_builder_new(void) *)
+PROCEDURE gdk_memory_texture_builder_new () : GdkMemoryTextureBuilder;
+
+(* GdkTexture *gdk_memory_texture_builder_build(GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_build (self: GdkMemoryTextureBuilder)
+                                          : ADDRESS;
+
+(* GBytes *gdk_memory_texture_builder_get_bytes(GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_bytes (self: GdkMemoryTextureBuilder)
+                                              : ADDRESS;
+
+(* GdkColorState *gdk_memory_texture_builder_get_color_state(
+                    GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_color_state
+              (self: GdkMemoryTextureBuilder) : ADDRESS;
+
+(* GdkMemoryFormat gdk_memory_texture_builder_get_format(
+                    GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_format
+              (self: GdkMemoryTextureBuilder) : CARDINAL;
+
+(* int gdk_memory_texture_builder_get_height(GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_height
+              (self: GdkMemoryTextureBuilder) : INTEGER;
+
+(* gsize gdk_memory_texture_builder_get_stride(GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_stride
+              (self: GdkMemoryTextureBuilder) : LONGCARD;
+
+(* cairo_region_t *gdk_memory_texture_builder_get_update_region(
+                    GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_update_region
+              (self: GdkMemoryTextureBuilder) : ADDRESS;
+
+(* GdkTexture *gdk_memory_texture_builder_get_update_texture(
+                 GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_update_texture
+              (self: GdkMemoryTextureBuilder) : ADDRESS;
+
+(* int gdk_memory_texture_builder_get_width(GdkMemoryTextureBuilder *self) *)
+PROCEDURE gdk_memory_texture_builder_get_width
+              (self: GdkMemoryTextureBuilder) : INTEGER;
+
+(* void gdk_memory_texture_builder_set_bytes(GdkMemoryTextureBuilder *self,
+                                             GBytes *bytes) *)
+PROCEDURE gdk_memory_texture_builder_set_bytes (self: GdkMemoryTextureBuilder;
+                                                bytes: ADDRESS);
+
+(* void gdk_memory_texture_builder_set_color_state(
+          GdkMemoryTextureBuilder *self, GdkColorState *color_state) *)
+PROCEDURE gdk_memory_texture_builder_set_color_state
+              (self: GdkMemoryTextureBuilder; color_state: ADDRESS);
+
+(* void gdk_memory_texture_builder_set_format(GdkMemoryTextureBuilder *self,
+                                              GdkMemoryFormat format) *)
+PROCEDURE gdk_memory_texture_builder_set_format (self: GdkMemoryTextureBuilder;
+                                                 format: CARDINAL);
+
+(* void gdk_memory_texture_builder_set_height(GdkMemoryTextureBuilder *self,
+                                              int height) *)
+PROCEDURE gdk_memory_texture_builder_set_height (self: GdkMemoryTextureBuilder;
+                                                 height: INTEGER);
+
+(* void gdk_memory_texture_builder_set_stride(GdkMemoryTextureBuilder *self,
+                                              gsize stride) *)
+PROCEDURE gdk_memory_texture_builder_set_stride (self: GdkMemoryTextureBuilder;
+                                                 stride: LONGCARD);
+
+(* void gdk_memory_texture_builder_set_update_region(
+          GdkMemoryTextureBuilder *self, cairo_region_t *region) *)
+PROCEDURE gdk_memory_texture_builder_set_update_region
+              (self: GdkMemoryTextureBuilder; region: ADDRESS);
+
+(* void gdk_memory_texture_builder_set_update_texture(
+          GdkMemoryTextureBuilder *self, GdkTexture *texture) *)
+PROCEDURE gdk_memory_texture_builder_set_update_texture
+              (self: GdkMemoryTextureBuilder; texture: ADDRESS);
+
+(* void gdk_memory_texture_builder_set_width(GdkMemoryTextureBuilder *self,
+                                             int width) *)
+PROCEDURE gdk_memory_texture_builder_set_width (self: GdkMemoryTextureBuilder;
+                                                width: INTEGER);
 
 END GdkMemoryTextureBuilder.

+ 43 - 26
src/GdkMonitor.def

@@ -1,6 +1,11 @@
 DEFINITION MODULE FOR "C" GdkMonitor ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkMonitor: a physical display.
+   Mapped onto <gdk/gdkmonitor.h>.
+
+   Get one from GdkDisplay.gdk_display_get_monitors().
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -23,31 +28,43 @@ EXPORT UNQUALIFIED
 TYPE
    GdkMonitor = ADDRESS;
 
-(* gdk_monitor_get_connector *)
-PROCEDURE gdk_monitor_get_connector (monitor: GdkMonitor) : [ ADDRESS ];
-(* gdk_monitor_get_description *)
-PROCEDURE gdk_monitor_get_description (monitor: GdkMonitor) : [ ADDRESS ];
-(* gdk_monitor_get_display *)
-PROCEDURE gdk_monitor_get_display (monitor: GdkMonitor) : [ ADDRESS ];
-(* gdk_monitor_get_geometry *)
+(* const char *gdk_monitor_get_connector(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_connector (monitor: GdkMonitor) : ADDRESS;
+
+(* const char *gdk_monitor_get_description(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_description (monitor: GdkMonitor) : ADDRESS;
+
+(* GdkDisplay *gdk_monitor_get_display(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_display (monitor: GdkMonitor) : ADDRESS;
+
+(* void gdk_monitor_get_geometry(GdkMonitor *monitor, GdkRectangle *geometry) *)
 PROCEDURE gdk_monitor_get_geometry (monitor: GdkMonitor; geometry: ADDRESS);
-(* gdk_monitor_get_height_mm *)
-PROCEDURE gdk_monitor_get_height_mm (monitor: GdkMonitor) : [ INTEGER ];
-(* gdk_monitor_get_manufacturer *)
-PROCEDURE gdk_monitor_get_manufacturer (monitor: GdkMonitor) : [ ADDRESS ];
-(* gdk_monitor_get_model *)
-PROCEDURE gdk_monitor_get_model (monitor: GdkMonitor) : [ ADDRESS ];
-(* gdk_monitor_get_refresh_rate *)
-PROCEDURE gdk_monitor_get_refresh_rate (monitor: GdkMonitor) : [ INTEGER ];
-(* gdk_monitor_get_scale *)
-PROCEDURE gdk_monitor_get_scale (monitor: GdkMonitor) : [ REAL ];
-(* gdk_monitor_get_scale_factor *)
-PROCEDURE gdk_monitor_get_scale_factor (monitor: GdkMonitor) : [ INTEGER ];
-(* gdk_monitor_get_subpixel_layout *)
-PROCEDURE gdk_monitor_get_subpixel_layout (monitor: GdkMonitor) : [ CARDINAL ];
-(* gdk_monitor_get_width_mm *)
-PROCEDURE gdk_monitor_get_width_mm (monitor: GdkMonitor) : [ INTEGER ];
-(* gdk_monitor_is_valid *)
-PROCEDURE gdk_monitor_is_valid (monitor: GdkMonitor) : [ INTEGER ];
+
+(* int gdk_monitor_get_height_mm(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_height_mm (monitor: GdkMonitor) : INTEGER;
+
+(* const char *gdk_monitor_get_manufacturer(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_manufacturer (monitor: GdkMonitor) : ADDRESS;
+
+(* const char *gdk_monitor_get_model(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_model (monitor: GdkMonitor) : ADDRESS;
+
+(* int gdk_monitor_get_refresh_rate(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_refresh_rate (monitor: GdkMonitor) : INTEGER;
+
+(* double gdk_monitor_get_scale(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_scale (monitor: GdkMonitor) : REAL;
+
+(* int gdk_monitor_get_scale_factor(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_scale_factor (monitor: GdkMonitor) : INTEGER;
+
+(* GdkSubpixelLayout gdk_monitor_get_subpixel_layout(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_subpixel_layout (monitor: GdkMonitor) : CARDINAL;
+
+(* int gdk_monitor_get_width_mm(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_get_width_mm (monitor: GdkMonitor) : INTEGER;
+
+(* gboolean gdk_monitor_is_valid(GdkMonitor *monitor) *)
+PROCEDURE gdk_monitor_is_valid (monitor: GdkMonitor) : INTEGER;
 
 END GdkMonitor.

+ 18 - 7
src/GdkPadEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkPadEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkPadEvent: an event from a drawing tablet pad.
+   Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,19 @@ EXPORT UNQUALIFIED
 TYPE
    GdkPadEvent = ADDRESS;
 
-(* gdk_pad_event_get_axis_value *)
-PROCEDURE gdk_pad_event_get_axis_value (event: GdkPadEvent; VAR index: CARDINAL; VAR value: REAL);
-(* gdk_pad_event_get_button *)
-PROCEDURE gdk_pad_event_get_button (event: GdkPadEvent) : [ CARDINAL ];
-(* gdk_pad_event_get_group_mode *)
-PROCEDURE gdk_pad_event_get_group_mode (event: GdkPadEvent; VAR group: CARDINAL; VAR mode: CARDINAL);
+(* void gdk_pad_event_get_axis_value(GdkPadEvent *event, guint *index,
+                                     double *value) *)
+PROCEDURE gdk_pad_event_get_axis_value (event: GdkPadEvent;
+                                        VAR index: CARDINAL;
+                                        VAR value: REAL);
+
+(* guint gdk_pad_event_get_button(GdkPadEvent *event) *)
+PROCEDURE gdk_pad_event_get_button (event: GdkPadEvent) : CARDINAL;
+
+(* void gdk_pad_event_get_group_mode(GdkPadEvent *event, guint *group,
+                                     guint *mode) *)
+PROCEDURE gdk_pad_event_get_group_mode (event: GdkPadEvent;
+                                        VAR group: CARDINAL;
+                                        VAR mode: CARDINAL);
 
 END GdkPadEvent.

+ 55 - 19
src/GdkPaintable.def

@@ -1,6 +1,12 @@
 DEFINITION MODULE FOR "C" GdkPaintable ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkPaintable: an object that can be painted.
+   Mapped onto <gdk/gdkpaintable.h>.
+
+   GdkTexture and GtkWidget both implement this interface; pass it to
+   GtkPicture.gtk_picture_set_paintable or GtkImage.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -20,25 +26,55 @@ EXPORT UNQUALIFIED
 TYPE
    GdkPaintable = ADDRESS;
 
-(* gdk_paintable_new_empty *)
-PROCEDURE gdk_paintable_new_empty (intrinsic_width: INTEGER; intrinsic_height: INTEGER) : [ ADDRESS ];
-(* gdk_paintable_compute_concrete_size *)
-PROCEDURE gdk_paintable_compute_concrete_size (paintable: GdkPaintable; specified_width: REAL; specified_height: REAL; default_width: REAL; default_height: REAL; VAR concrete_width: REAL; VAR concrete_height: REAL);
-(* gdk_paintable_get_current_image *)
-PROCEDURE gdk_paintable_get_current_image (paintable: GdkPaintable) : [ ADDRESS ];
-(* gdk_paintable_get_flags *)
-PROCEDURE gdk_paintable_get_flags (paintable: GdkPaintable) : [ CARDINAL ];
-(* gdk_paintable_get_intrinsic_aspect_ratio *)
-PROCEDURE gdk_paintable_get_intrinsic_aspect_ratio (paintable: GdkPaintable) : [ REAL ];
-(* gdk_paintable_get_intrinsic_height *)
-PROCEDURE gdk_paintable_get_intrinsic_height (paintable: GdkPaintable) : [ INTEGER ];
-(* gdk_paintable_get_intrinsic_width *)
-PROCEDURE gdk_paintable_get_intrinsic_width (paintable: GdkPaintable) : [ INTEGER ];
-(* gdk_paintable_invalidate_contents *)
+(* GdkPaintable *gdk_paintable_new_empty(int intrinsic_width,
+                                         int intrinsic_height) *)
+PROCEDURE gdk_paintable_new_empty (intrinsic_width: INTEGER;
+                                   intrinsic_height: INTEGER) : GdkPaintable;
+
+(* void gdk_paintable_compute_concrete_size(GdkPaintable *paintable,
+                                            double specified_width,
+                                            double specified_height,
+                                            double default_width,
+                                            double default_height,
+                                            double *concrete_width,
+                                            double *concrete_height) *)
+PROCEDURE gdk_paintable_compute_concrete_size (paintable: GdkPaintable;
+                                               specified_width: REAL;
+                                               specified_height: REAL;
+                                               default_width: REAL;
+                                               default_height: REAL;
+                                               VAR concrete_width: REAL;
+                                               VAR concrete_height: REAL);
+
+(* GdkPaintable *gdk_paintable_get_current_image(GdkPaintable *paintable) *)
+PROCEDURE gdk_paintable_get_current_image (paintable: GdkPaintable) : ADDRESS;
+
+(* GdkPaintableFlags gdk_paintable_get_flags(GdkPaintable *paintable) *)
+PROCEDURE gdk_paintable_get_flags (paintable: GdkPaintable) : CARDINAL;
+
+(* double gdk_paintable_get_intrinsic_aspect_ratio(GdkPaintable *paintable) *)
+PROCEDURE gdk_paintable_get_intrinsic_aspect_ratio (paintable: GdkPaintable)
+                                                  : REAL;
+
+(* int gdk_paintable_get_intrinsic_height(GdkPaintable *paintable) *)
+PROCEDURE gdk_paintable_get_intrinsic_height (paintable: GdkPaintable)
+                                            : INTEGER;
+
+(* int gdk_paintable_get_intrinsic_width(GdkPaintable *paintable) *)
+PROCEDURE gdk_paintable_get_intrinsic_width (paintable: GdkPaintable) : INTEGER;
+
+(* void gdk_paintable_invalidate_contents(GdkPaintable *paintable) *)
 PROCEDURE gdk_paintable_invalidate_contents (paintable: GdkPaintable);
-(* gdk_paintable_invalidate_size *)
+
+(* void gdk_paintable_invalidate_size(GdkPaintable *paintable) *)
 PROCEDURE gdk_paintable_invalidate_size (paintable: GdkPaintable);
-(* gdk_paintable_snapshot *)
-PROCEDURE gdk_paintable_snapshot (paintable: GdkPaintable; snapshot: ADDRESS; width: REAL; height: REAL);
+
+(* void gdk_paintable_snapshot(GdkPaintable *paintable,
+                               GdkSnapshot *snapshot,
+                               double width, double height) *)
+PROCEDURE gdk_paintable_snapshot (paintable: GdkPaintable;
+                                  snapshot: ADDRESS;
+                                  width: REAL;
+                                  height: REAL);
 
 END GdkPaintable.

+ 26 - 15
src/GdkPopup.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkPopup ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkPopup: a surface that pops up relative to a parent.
+   Mapped onto <gdk/gdkpopup.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -17,19 +20,27 @@ EXPORT UNQUALIFIED
 TYPE
    GdkPopup = ADDRESS;
 
-(* gdk_popup_get_autohide *)
-PROCEDURE gdk_popup_get_autohide (popup: GdkPopup) : [ INTEGER ];
-(* gdk_popup_get_parent *)
-PROCEDURE gdk_popup_get_parent (popup: GdkPopup) : [ ADDRESS ];
-(* gdk_popup_get_position_x *)
-PROCEDURE gdk_popup_get_position_x (popup: GdkPopup) : [ INTEGER ];
-(* gdk_popup_get_position_y *)
-PROCEDURE gdk_popup_get_position_y (popup: GdkPopup) : [ INTEGER ];
-(* gdk_popup_get_rect_anchor *)
-PROCEDURE gdk_popup_get_rect_anchor (popup: GdkPopup) : [ CARDINAL ];
-(* gdk_popup_get_surface_anchor *)
-PROCEDURE gdk_popup_get_surface_anchor (popup: GdkPopup) : [ CARDINAL ];
-(* gdk_popup_present *)
-PROCEDURE gdk_popup_present (popup: GdkPopup; width: INTEGER; height: INTEGER; layout: ADDRESS) : [ INTEGER ];
+(* gboolean gdk_popup_get_autohide(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_autohide (popup: GdkPopup) : INTEGER;
+
+(* GdkSurface *gdk_popup_get_parent(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_parent (popup: GdkPopup) : ADDRESS;
+
+(* int gdk_popup_get_position_x(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_position_x (popup: GdkPopup) : INTEGER;
+
+(* int gdk_popup_get_position_y(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_position_y (popup: GdkPopup) : INTEGER;
+
+(* GdkGravity gdk_popup_get_rect_anchor(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_rect_anchor (popup: GdkPopup) : CARDINAL;
+
+(* GdkGravity gdk_popup_get_surface_anchor(GdkPopup *popup) *)
+PROCEDURE gdk_popup_get_surface_anchor (popup: GdkPopup) : CARDINAL;
+
+(* gboolean gdk_popup_present(GdkPopup *popup, int width, int height,
+                              GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_present (popup: GdkPopup; width: INTEGER; height: INTEGER;
+                             layout: ADDRESS) : INTEGER;
 
 END GdkPopup.

+ 45 - 26
src/GdkPopupLayout.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkPopupLayout ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkPopupLayout: the arrangement of a popup surface.
+   Mapped onto <gdk/gdkpopuplayout.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -27,39 +30,55 @@ EXPORT UNQUALIFIED
 TYPE
    GdkPopupLayout = ADDRESS;
 
-(* gdk_popup_layout_new *)
-PROCEDURE gdk_popup_layout_new (anchor_rect: ADDRESS; rect_anchor: CARDINAL; surface_anchor: CARDINAL) : [ ADDRESS ];
-(* gdk_popup_layout_copy *)
-PROCEDURE gdk_popup_layout_copy (layout: GdkPopupLayout) : [ ADDRESS ];
-(* gdk_popup_layout_equal *)
-PROCEDURE gdk_popup_layout_equal (layout: GdkPopupLayout; other: GdkPopupLayout) : [ INTEGER ];
-(* gdk_popup_layout_get_anchor_hints *)
-PROCEDURE gdk_popup_layout_get_anchor_hints (layout: GdkPopupLayout) : [ CARDINAL ];
-(* gdk_popup_layout_get_anchor_rect *)
-PROCEDURE gdk_popup_layout_get_anchor_rect (layout: GdkPopupLayout) : [ ADDRESS ];
-(* gdk_popup_layout_get_offset *)
+(* GdkPopupLayout *gdk_popup_layout_new(const GdkRectangle *anchor_rect, GdkGravity rect_anchor, GdkGravity surface_anchor) *)
+PROCEDURE gdk_popup_layout_new (anchor_rect: ADDRESS; rect_anchor: CARDINAL; surface_anchor: CARDINAL) : GdkPopupLayout;
+
+(* GdkPopupLayout *gdk_popup_layout_copy(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_copy (layout: GdkPopupLayout) : GdkPopupLayout;
+
+(* gboolean gdk_popup_layout_equal(GdkPopupLayout *layout, GdkPopupLayout *other) *)
+PROCEDURE gdk_popup_layout_equal (layout: GdkPopupLayout; other: GdkPopupLayout) : INTEGER;
+
+(* GdkAnchorHints gdk_popup_layout_get_anchor_hints(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_get_anchor_hints (layout: GdkPopupLayout) : CARDINAL;
+
+(* const GdkRectangle *gdk_popup_layout_get_anchor_rect(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_get_anchor_rect (layout: GdkPopupLayout) : ADDRESS;
+
+(* void gdk_popup_layout_get_offset(GdkPopupLayout *layout, int *dx, int *dy) *)
 PROCEDURE gdk_popup_layout_get_offset (layout: GdkPopupLayout; VAR dx: INTEGER; VAR dy: INTEGER);
-(* gdk_popup_layout_get_rect_anchor *)
-PROCEDURE gdk_popup_layout_get_rect_anchor (layout: GdkPopupLayout) : [ CARDINAL ];
-(* gdk_popup_layout_get_shadow_width *)
+
+(* GdkGravity gdk_popup_layout_get_rect_anchor(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_get_rect_anchor (layout: GdkPopupLayout) : CARDINAL;
+
+(* void gdk_popup_layout_get_shadow_width(GdkPopupLayout *layout, int *left, int *right, int *top, int *bottom) *)
 PROCEDURE gdk_popup_layout_get_shadow_width (layout: GdkPopupLayout; VAR left: INTEGER; VAR right: INTEGER; VAR top: INTEGER; VAR bottom: INTEGER);
-(* gdk_popup_layout_get_surface_anchor *)
-PROCEDURE gdk_popup_layout_get_surface_anchor (layout: GdkPopupLayout) : [ CARDINAL ];
-(* gdk_popup_layout_ref *)
-PROCEDURE gdk_popup_layout_ref (layout: GdkPopupLayout) : [ ADDRESS ];
-(* gdk_popup_layout_set_anchor_hints *)
+
+(* GdkGravity gdk_popup_layout_get_surface_anchor(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_get_surface_anchor (layout: GdkPopupLayout) : CARDINAL;
+
+(* GdkPopupLayout *gdk_popup_layout_ref(GdkPopupLayout *layout) *)
+PROCEDURE gdk_popup_layout_ref (layout: GdkPopupLayout) : GdkPopupLayout;
+
+(* void gdk_popup_layout_set_anchor_hints(GdkPopupLayout *layout, GdkAnchorHints anchor_hints) *)
 PROCEDURE gdk_popup_layout_set_anchor_hints (layout: GdkPopupLayout; anchor_hints: CARDINAL);
-(* gdk_popup_layout_set_anchor_rect *)
+
+(* void gdk_popup_layout_set_anchor_rect(GdkPopupLayout *layout, const GdkRectangle *anchor_rect) *)
 PROCEDURE gdk_popup_layout_set_anchor_rect (layout: GdkPopupLayout; anchor_rect: ADDRESS);
-(* gdk_popup_layout_set_offset *)
+
+(* void gdk_popup_layout_set_offset(GdkPopupLayout *layout, int dx, int dy) *)
 PROCEDURE gdk_popup_layout_set_offset (layout: GdkPopupLayout; dx: INTEGER; dy: INTEGER);
-(* gdk_popup_layout_set_rect_anchor *)
+
+(* void gdk_popup_layout_set_rect_anchor(GdkPopupLayout *layout, GdkGravity anchor) *)
 PROCEDURE gdk_popup_layout_set_rect_anchor (layout: GdkPopupLayout; anchor: CARDINAL);
-(* gdk_popup_layout_set_shadow_width *)
+
+(* void gdk_popup_layout_set_shadow_width(GdkPopupLayout *layout, int left, int right, int top, int bottom) *)
 PROCEDURE gdk_popup_layout_set_shadow_width (layout: GdkPopupLayout; left: INTEGER; right: INTEGER; top: INTEGER; bottom: INTEGER);
-(* gdk_popup_layout_set_surface_anchor *)
+
+(* void gdk_popup_layout_set_surface_anchor(GdkPopupLayout *layout, GdkGravity anchor) *)
 PROCEDURE gdk_popup_layout_set_surface_anchor (layout: GdkPopupLayout; anchor: CARDINAL);
-(* gdk_popup_layout_unref *)
+
+(* void gdk_popup_layout_unref(GdkPopupLayout *layout) *)
 PROCEDURE gdk_popup_layout_unref (layout: GdkPopupLayout);
 
 END GdkPopupLayout.

+ 20 - 13
src/GdkRectangle.def

@@ -1,8 +1,9 @@
 DEFINITION MODULE FOR "C" GdkRectangle ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
-
-FROM SYSTEM IMPORT ADDRESS;
+(*
+   m2-GTK4 - GdkRectangle: a rectangle, in surface coordinates.
+   Mapped onto <gdk/gdkrectangle.h>.
+*)
 
 EXPORT UNQUALIFIED
    GdkRectangle,
@@ -12,15 +13,21 @@ EXPORT UNQUALIFIED
    gdk_rectangle_union;
 
 TYPE
-   GdkRectangle = ADDRESS;
-
-(* gdk_rectangle_contains_point *)
-PROCEDURE gdk_rectangle_contains_point (rect: GdkRectangle; x: INTEGER; y: INTEGER) : [ INTEGER ];
-(* gdk_rectangle_equal *)
-PROCEDURE gdk_rectangle_equal (rect1: GdkRectangle; rect2: GdkRectangle) : [ INTEGER ];
-(* gdk_rectangle_intersect *)
-PROCEDURE gdk_rectangle_intersect (src1: GdkRectangle; src2: GdkRectangle; dest: GdkRectangle) : [ INTEGER ];
-(* gdk_rectangle_union *)
-PROCEDURE gdk_rectangle_union (src1: GdkRectangle; src2: GdkRectangle; dest: GdkRectangle);
+   (* struct { int x, y, width, height; } *)
+   GdkRectangle = RECORD
+      x, y, width, height: INTEGER;
+   END;
+
+(* gboolean gdk_rectangle_contains_point(const GdkRectangle *rect, int x, int y) *)
+PROCEDURE gdk_rectangle_contains_point (VAR rect: GdkRectangle; x, y: INTEGER) : INTEGER;
+
+(* gboolean gdk_rectangle_equal(const GdkRectangle *rect1, const GdkRectangle *rect2) *)
+PROCEDURE gdk_rectangle_equal (VAR rect1, rect2: GdkRectangle) : INTEGER;
+
+(* gboolean gdk_rectangle_intersect(const GdkRectangle *src1, const GdkRectangle *src2, GdkRectangle *dest) *)
+PROCEDURE gdk_rectangle_intersect (VAR src1, src2, dest: GdkRectangle) : INTEGER;
+
+(* void gdk_rectangle_union(const GdkRectangle *src1, const GdkRectangle *src2, GdkRectangle *dest) *)
+PROCEDURE gdk_rectangle_union (VAR src1, src2, dest: GdkRectangle);
 
 END GdkRectangle.

+ 14 - 8
src/GdkScrollEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkScrollEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkScrollEvent: a scroll event.
+   Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GdkScrollEvent = ADDRESS;
 
-(* gdk_scroll_event_get_deltas *)
+(* void gdk_scroll_event_get_deltas(GdkEvent *event, double *delta_x, double *delta_y) *)
 PROCEDURE gdk_scroll_event_get_deltas (event: GdkScrollEvent; VAR delta_x: REAL; VAR delta_y: REAL);
-(* gdk_scroll_event_get_direction *)
-PROCEDURE gdk_scroll_event_get_direction (event: GdkScrollEvent) : [ CARDINAL ];
-(* gdk_scroll_event_get_unit *)
-PROCEDURE gdk_scroll_event_get_unit (event: GdkScrollEvent) : [ CARDINAL ];
-(* gdk_scroll_event_is_stop *)
-PROCEDURE gdk_scroll_event_is_stop (event: GdkScrollEvent) : [ INTEGER ];
+
+(* GdkScrollDirection gdk_scroll_event_get_direction(GdkEvent *event) *)
+PROCEDURE gdk_scroll_event_get_direction (event: GdkScrollEvent) : CARDINAL;
+
+(* GdkScrollUnit gdk_scroll_event_get_unit(GdkEvent *event) *)
+PROCEDURE gdk_scroll_event_get_unit (event: GdkScrollEvent) : CARDINAL;
+
+(* gboolean gdk_scroll_event_is_stop(GdkEvent *event) *)
+PROCEDURE gdk_scroll_event_is_stop (event: GdkScrollEvent) : INTEGER;
 
 END GdkScrollEvent.

+ 21 - 13
src/GdkSeat.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkSeat ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkSeat: a seat of input devices.
+   Mapped onto <gdk/gdkseat.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -16,17 +19,22 @@ EXPORT UNQUALIFIED
 TYPE
    GdkSeat = ADDRESS;
 
-(* gdk_seat_get_capabilities *)
-PROCEDURE gdk_seat_get_capabilities (seat: GdkSeat) : [ CARDINAL ];
-(* gdk_seat_get_devices *)
-PROCEDURE gdk_seat_get_devices (seat: GdkSeat; capabilities: CARDINAL) : [ ADDRESS ];
-(* gdk_seat_get_display *)
-PROCEDURE gdk_seat_get_display (seat: GdkSeat) : [ ADDRESS ];
-(* gdk_seat_get_keyboard *)
-PROCEDURE gdk_seat_get_keyboard (seat: GdkSeat) : [ ADDRESS ];
-(* gdk_seat_get_pointer *)
-PROCEDURE gdk_seat_get_pointer (seat: GdkSeat) : [ ADDRESS ];
-(* gdk_seat_get_tools *)
-PROCEDURE gdk_seat_get_tools (seat: GdkSeat) : [ ADDRESS ];
+(* GdkSeatCapabilities gdk_seat_get_capabilities(GdkSeat *seat) *)
+PROCEDURE gdk_seat_get_capabilities (seat: GdkSeat) : CARDINAL;
+
+(* GList *gdk_seat_get_devices(GdkSeat *seat, GdkSeatCapabilities capabilities) *)
+PROCEDURE gdk_seat_get_devices (seat: GdkSeat; capabilities: CARDINAL) : ADDRESS;
+
+(* GdkDisplay *gdk_seat_get_display(GdkSeat *seat) *)
+PROCEDURE gdk_seat_get_display (seat: GdkSeat) : ADDRESS;
+
+(* GdkDevice *gdk_seat_get_keyboard(GdkSeat *seat) *)
+PROCEDURE gdk_seat_get_keyboard (seat: GdkSeat) : ADDRESS;
+
+(* GdkDevice *gdk_seat_get_pointer(GdkSeat *seat) *)
+PROCEDURE gdk_seat_get_pointer (seat: GdkSeat) : ADDRESS;
+
+(* GList *gdk_seat_get_tools(GdkSeat *seat) *)
+PROCEDURE gdk_seat_get_tools (seat: GdkSeat) : ADDRESS;
 
 END GdkSeat.

+ 75 - 46
src/GdkSurface.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkSurface ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkSurface: an on-screen surface that can be drawn to.
+   Mapped onto <gdk/gdksurface.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -37,59 +40,85 @@ EXPORT UNQUALIFIED
 TYPE
    GdkSurface = ADDRESS;
 
-(* gdk_surface_new_popup *)
-PROCEDURE gdk_surface_new_popup (parent: GdkSurface; autohide: INTEGER) : [ ADDRESS ];
-(* gdk_surface_new_toplevel *)
-PROCEDURE gdk_surface_new_toplevel (display: ADDRESS) : [ ADDRESS ];
-(* gdk_surface_beep *)
+(* GdkSurface *gdk_surface_new_popup(GdkSurface *parent, gboolean autohide) *)
+PROCEDURE gdk_surface_new_popup (parent: GdkSurface; autohide: INTEGER) : GdkSurface;
+
+(* GdkSurface *gdk_surface_new_toplevel(GdkDisplay *display) *)
+PROCEDURE gdk_surface_new_toplevel (display: ADDRESS) : GdkSurface;
+
+(* void gdk_surface_beep(GdkSurface *surface) *)
 PROCEDURE gdk_surface_beep (surface: GdkSurface);
-(* gdk_surface_create_cairo_context *)
-PROCEDURE gdk_surface_create_cairo_context (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_create_gl_context *)
-PROCEDURE gdk_surface_create_gl_context (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_create_similar_surface *)
-PROCEDURE gdk_surface_create_similar_surface (surface: GdkSurface; content: ADDRESS; width: INTEGER; height: INTEGER) : [ ADDRESS ];
-(* gdk_surface_create_vulkan_context *)
-PROCEDURE gdk_surface_create_vulkan_context (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_destroy *)
+
+(* GdkCairoContext *gdk_surface_create_cairo_context(GdkSurface *surface) *)
+PROCEDURE gdk_surface_create_cairo_context (surface: GdkSurface) : ADDRESS;
+
+(* GdkGLContext *gdk_surface_create_gl_context(GdkSurface *surface, GError **error) *)
+PROCEDURE gdk_surface_create_gl_context (surface: GdkSurface) : ADDRESS;
+
+(* cairo_surface_t *gdk_surface_create_similar_surface(GdkSurface *surface, cairo_content_t content, int width, int height) *)
+PROCEDURE gdk_surface_create_similar_surface (surface: GdkSurface; content: ADDRESS; width: INTEGER; height: INTEGER) : ADDRESS;
+
+(* GdkVulkanContext *gdk_surface_create_vulkan_context(GdkSurface *surface, GError **error) *)
+PROCEDURE gdk_surface_create_vulkan_context (surface: GdkSurface) : ADDRESS;
+
+(* void gdk_surface_destroy(GdkSurface *surface) *)
 PROCEDURE gdk_surface_destroy (surface: GdkSurface);
-(* gdk_surface_get_cursor *)
-PROCEDURE gdk_surface_get_cursor (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_get_device_cursor *)
-PROCEDURE gdk_surface_get_device_cursor (surface: GdkSurface; device: ADDRESS) : [ ADDRESS ];
-(* gdk_surface_get_device_position *)
-PROCEDURE gdk_surface_get_device_position (surface: GdkSurface; device: ADDRESS; VAR x: REAL; VAR y: REAL; VAR mask: CARDINAL) : [ INTEGER ];
-(* gdk_surface_get_display *)
-PROCEDURE gdk_surface_get_display (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_get_frame_clock *)
-PROCEDURE gdk_surface_get_frame_clock (surface: GdkSurface) : [ ADDRESS ];
-(* gdk_surface_get_height *)
-PROCEDURE gdk_surface_get_height (surface: GdkSurface) : [ INTEGER ];
-(* gdk_surface_get_mapped *)
-PROCEDURE gdk_surface_get_mapped (surface: GdkSurface) : [ INTEGER ];
-(* gdk_surface_get_scale *)
-PROCEDURE gdk_surface_get_scale (surface: GdkSurface) : [ REAL ];
-(* gdk_surface_get_scale_factor *)
-PROCEDURE gdk_surface_get_scale_factor (surface: GdkSurface) : [ INTEGER ];
-(* gdk_surface_get_width *)
-PROCEDURE gdk_surface_get_width (surface: GdkSurface) : [ INTEGER ];
-(* gdk_surface_hide *)
+
+(* GdkCursor *gdk_surface_get_cursor(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_cursor (surface: GdkSurface) : ADDRESS;
+
+(* GdkCursor *gdk_surface_get_device_cursor(GdkSurface *surface, GdkDevice *device) *)
+PROCEDURE gdk_surface_get_device_cursor (surface: GdkSurface; device: ADDRESS) : ADDRESS;
+
+(* gboolean gdk_surface_get_device_position(GdkSurface *surface, GdkDevice *device, double *x, double *y, GdkModifierType *mask) *)
+PROCEDURE gdk_surface_get_device_position (surface: GdkSurface; device: ADDRESS; VAR x: REAL; VAR y: REAL; VAR mask: CARDINAL) : INTEGER;
+
+(* GdkDisplay *gdk_surface_get_display(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_display (surface: GdkSurface) : ADDRESS;
+
+(* GdkFrameClock *gdk_surface_get_frame_clock(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_frame_clock (surface: GdkSurface) : ADDRESS;
+
+(* int gdk_surface_get_height(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_height (surface: GdkSurface) : INTEGER;
+
+(* gboolean gdk_surface_get_mapped(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_mapped (surface: GdkSurface) : INTEGER;
+
+(* double gdk_surface_get_scale(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_scale (surface: GdkSurface) : REAL;
+
+(* int gdk_surface_get_scale_factor(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_scale_factor (surface: GdkSurface) : INTEGER;
+
+(* int gdk_surface_get_width(GdkSurface *surface) *)
+PROCEDURE gdk_surface_get_width (surface: GdkSurface) : INTEGER;
+
+(* void gdk_surface_hide(GdkSurface *surface) *)
 PROCEDURE gdk_surface_hide (surface: GdkSurface);
-(* gdk_surface_is_destroyed *)
-PROCEDURE gdk_surface_is_destroyed (surface: GdkSurface) : [ INTEGER ];
-(* gdk_surface_queue_render *)
+
+(* gboolean gdk_surface_is_destroyed(GdkSurface *surface) *)
+PROCEDURE gdk_surface_is_destroyed (surface: GdkSurface) : INTEGER;
+
+(* void gdk_surface_queue_render(GdkSurface *surface) *)
 PROCEDURE gdk_surface_queue_render (surface: GdkSurface);
-(* gdk_surface_request_layout *)
+
+(* void gdk_surface_request_layout(GdkSurface *surface) *)
 PROCEDURE gdk_surface_request_layout (surface: GdkSurface);
-(* gdk_surface_set_cursor *)
+
+(* void gdk_surface_set_cursor(GdkSurface *surface, GdkCursor *cursor) *)
 PROCEDURE gdk_surface_set_cursor (surface: GdkSurface; cursor: ADDRESS);
-(* gdk_surface_set_device_cursor *)
+
+(* void gdk_surface_set_device_cursor(GdkSurface *surface, GdkDevice *device, GdkCursor *cursor) *)
 PROCEDURE gdk_surface_set_device_cursor (surface: GdkSurface; device: ADDRESS; cursor: ADDRESS);
-(* gdk_surface_set_input_region *)
+
+(* void gdk_surface_set_input_region(GdkSurface *surface, cairo_region_t *region) *)
 PROCEDURE gdk_surface_set_input_region (surface: GdkSurface; region: ADDRESS);
-(* gdk_surface_set_opaque_region *)
+
+(* void gdk_surface_set_opaque_region(GdkSurface *surface, cairo_region_t *region) *)
 PROCEDURE gdk_surface_set_opaque_region (surface: GdkSurface; region: ADDRESS);
-(* gdk_surface_translate_coordinates *)
-PROCEDURE gdk_surface_translate_coordinates (from_: GdkSurface; to_: GdkSurface; VAR x: REAL; VAR y: REAL) : [ INTEGER ];
+
+(* gboolean gdk_surface_translate_coordinates(GdkSurface *from, GdkSurface *to, double *x, double *y) *)
+PROCEDURE gdk_surface_translate_coordinates (from_surface: GdkSurface; to_surface: GdkSurface; VAR x: REAL; VAR y: REAL) : INTEGER;
 
 END GdkSurface.

+ 31 - 18
src/GdkTextureDownloader.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkTextureDownloader ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkTextureDownloader: downloads pixel data from a GdkTexture.
+   Mapped onto <gdk/gdktexturedownloader.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -21,27 +24,37 @@ EXPORT UNQUALIFIED
 TYPE
    GdkTextureDownloader = ADDRESS;
 
-(* gdk_texture_downloader_new *)
-PROCEDURE gdk_texture_downloader_new (texture: ADDRESS) : [ ADDRESS ];
-(* gdk_texture_downloader_copy *)
-PROCEDURE gdk_texture_downloader_copy (self: GdkTextureDownloader) : [ ADDRESS ];
-(* gdk_texture_downloader_download_bytes *)
-PROCEDURE gdk_texture_downloader_download_bytes (self: GdkTextureDownloader; VAR out_stride: LONGCARD) : [ ADDRESS ];
-(* gdk_texture_downloader_download_into *)
+(* GdkTextureDownloader *gdk_texture_downloader_new(GdkTexture *texture) *)
+PROCEDURE gdk_texture_downloader_new (texture: ADDRESS) : GdkTextureDownloader;
+
+(* GdkTextureDownloader *gdk_texture_downloader_copy(const GdkTextureDownloader *self) *)
+PROCEDURE gdk_texture_downloader_copy (self: GdkTextureDownloader) : GdkTextureDownloader;
+
+(* GBytes *gdk_texture_downloader_download_bytes(const GdkTextureDownloader *self, gsize *out_stride) *)
+PROCEDURE gdk_texture_downloader_download_bytes (self: GdkTextureDownloader; VAR out_stride: LONGCARD) : ADDRESS;
+
+(* void gdk_texture_downloader_download_into(const GdkTextureDownloader *self, guchar *data, gsize stride) *)
 PROCEDURE gdk_texture_downloader_download_into (self: GdkTextureDownloader; data: ADDRESS; stride: LONGCARD);
-(* gdk_texture_downloader_free *)
+
+(* void gdk_texture_downloader_free(GdkTextureDownloader *self) *)
 PROCEDURE gdk_texture_downloader_free (self: GdkTextureDownloader);
-(* gdk_texture_downloader_get_color_state *)
-PROCEDURE gdk_texture_downloader_get_color_state (self: GdkTextureDownloader) : [ ADDRESS ];
-(* gdk_texture_downloader_get_format *)
-PROCEDURE gdk_texture_downloader_get_format (self: GdkTextureDownloader) : [ CARDINAL ];
-(* gdk_texture_downloader_get_texture *)
-PROCEDURE gdk_texture_downloader_get_texture (self: GdkTextureDownloader) : [ ADDRESS ];
-(* gdk_texture_downloader_set_color_state *)
+
+(* GdkColorState *gdk_texture_downloader_get_color_state(const GdkTextureDownloader *self) *)
+PROCEDURE gdk_texture_downloader_get_color_state (self: GdkTextureDownloader) : ADDRESS;
+
+(* GdkMemoryFormat gdk_texture_downloader_get_format(const GdkTextureDownloader *self) *)
+PROCEDURE gdk_texture_downloader_get_format (self: GdkTextureDownloader) : CARDINAL;
+
+(* GdkTexture *gdk_texture_downloader_get_texture(const GdkTextureDownloader *self) *)
+PROCEDURE gdk_texture_downloader_get_texture (self: GdkTextureDownloader) : ADDRESS;
+
+(* void gdk_texture_downloader_set_color_state(GdkTextureDownloader *self, GdkColorState *color_state) *)
 PROCEDURE gdk_texture_downloader_set_color_state (self: GdkTextureDownloader; color_state: ADDRESS);
-(* gdk_texture_downloader_set_format *)
+
+(* void gdk_texture_downloader_set_format(GdkTextureDownloader *self, GdkMemoryFormat format) *)
 PROCEDURE gdk_texture_downloader_set_format (self: GdkTextureDownloader; format: CARDINAL);
-(* gdk_texture_downloader_set_texture *)
+
+(* void gdk_texture_downloader_set_texture(GdkTextureDownloader *self, GdkTexture *texture) *)
 PROCEDURE gdk_texture_downloader_set_texture (self: GdkTextureDownloader; texture: ADDRESS);
 
 END GdkTextureDownloader.

+ 47 - 26
src/GdkToplevel.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkToplevel ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkToplevel: a surface that is a toplevel window.
+   Mapped onto <gdk/gdktoplevel.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -29,43 +32,61 @@ EXPORT UNQUALIFIED
 TYPE
    GdkToplevel = ADDRESS;
 
-(* gdk_toplevel_begin_move *)
+(* void gdk_toplevel_begin_move(GdkToplevel *toplevel, GdkDevice *device, int button, double x, double y, guint32 timestamp) *)
 PROCEDURE gdk_toplevel_begin_move (toplevel: GdkToplevel; device: ADDRESS; button: INTEGER; x: REAL; y: REAL; timestamp: CARDINAL);
-(* gdk_toplevel_begin_resize *)
+
+(* void gdk_toplevel_begin_resize(GdkToplevel *toplevel, GdkSurfaceEdge edge, GdkDevice *device, int button, double x, double y, guint32 timestamp) *)
 PROCEDURE gdk_toplevel_begin_resize (toplevel: GdkToplevel; edge: CARDINAL; device: ADDRESS; button: INTEGER; x: REAL; y: REAL; timestamp: CARDINAL);
-(* gdk_toplevel_focus *)
+
+(* void gdk_toplevel_focus(GdkToplevel *toplevel, guint32 timestamp) *)
 PROCEDURE gdk_toplevel_focus (toplevel: GdkToplevel; timestamp: CARDINAL);
-(* gdk_toplevel_get_state *)
-PROCEDURE gdk_toplevel_get_state (toplevel: GdkToplevel) : [ CARDINAL ];
-(* gdk_toplevel_inhibit_system_shortcuts *)
+
+(* GdkToplevelState gdk_toplevel_get_state(GdkToplevel *toplevel) *)
+PROCEDURE gdk_toplevel_get_state (toplevel: GdkToplevel) : CARDINAL;
+
+(* void gdk_toplevel_inhibit_system_shortcuts(GdkToplevel *toplevel, GdkEvent *event) *)
 PROCEDURE gdk_toplevel_inhibit_system_shortcuts (toplevel: GdkToplevel; event: ADDRESS);
-(* gdk_toplevel_lower *)
-PROCEDURE gdk_toplevel_lower (toplevel: GdkToplevel) : [ INTEGER ];
-(* gdk_toplevel_minimize *)
-PROCEDURE gdk_toplevel_minimize (toplevel: GdkToplevel) : [ INTEGER ];
-(* gdk_toplevel_present *)
+
+(* gboolean gdk_toplevel_lower(GdkToplevel *toplevel) *)
+PROCEDURE gdk_toplevel_lower (toplevel: GdkToplevel) : INTEGER;
+
+(* gboolean gdk_toplevel_minimize(GdkToplevel *toplevel) *)
+PROCEDURE gdk_toplevel_minimize (toplevel: GdkToplevel) : INTEGER;
+
+(* void gdk_toplevel_present(GdkToplevel *toplevel, GdkToplevelLayout *layout) *)
 PROCEDURE gdk_toplevel_present (toplevel: GdkToplevel; layout: ADDRESS);
-(* gdk_toplevel_restore_system_shortcuts *)
+
+(* void gdk_toplevel_restore_system_shortcuts(GdkToplevel *toplevel) *)
 PROCEDURE gdk_toplevel_restore_system_shortcuts (toplevel: GdkToplevel);
-(* gdk_toplevel_set_decorated *)
+
+(* void gdk_toplevel_set_decorated(GdkToplevel *toplevel, gboolean decorated) *)
 PROCEDURE gdk_toplevel_set_decorated (toplevel: GdkToplevel; decorated: INTEGER);
-(* gdk_toplevel_set_deletable *)
+
+(* void gdk_toplevel_set_deletable(GdkToplevel *toplevel, gboolean deletable) *)
 PROCEDURE gdk_toplevel_set_deletable (toplevel: GdkToplevel; deletable: INTEGER);
-(* gdk_toplevel_set_icon_list *)
+
+(* void gdk_toplevel_set_icon_list(GdkToplevel *toplevel, GList *surfaces) *)
 PROCEDURE gdk_toplevel_set_icon_list (toplevel: GdkToplevel; surfaces: ADDRESS);
-(* gdk_toplevel_set_modal *)
+
+(* void gdk_toplevel_set_modal(GdkToplevel *toplevel, gboolean modal) *)
 PROCEDURE gdk_toplevel_set_modal (toplevel: GdkToplevel; modal: INTEGER);
-(* gdk_toplevel_set_startup_id *)
+
+(* void gdk_toplevel_set_startup_id(GdkToplevel *toplevel, const char *startup_id) *)
 PROCEDURE gdk_toplevel_set_startup_id (toplevel: GdkToplevel; startup_id: ARRAY OF CHAR);
-(* gdk_toplevel_set_title *)
+
+(* void gdk_toplevel_set_title(GdkToplevel *toplevel, const char *title) *)
 PROCEDURE gdk_toplevel_set_title (toplevel: GdkToplevel; title: ARRAY OF CHAR);
-(* gdk_toplevel_set_transient_for *)
+
+(* void gdk_toplevel_set_transient_for(GdkToplevel *toplevel, GdkSurface *parent) *)
 PROCEDURE gdk_toplevel_set_transient_for (toplevel: GdkToplevel; parent: ADDRESS);
-(* gdk_toplevel_show_window_menu *)
-PROCEDURE gdk_toplevel_show_window_menu (toplevel: GdkToplevel; event: ADDRESS) : [ INTEGER ];
-(* gdk_toplevel_supports_edge_constraints *)
-PROCEDURE gdk_toplevel_supports_edge_constraints (toplevel: GdkToplevel) : [ INTEGER ];
-(* gdk_toplevel_titlebar_gesture *)
-PROCEDURE gdk_toplevel_titlebar_gesture (toplevel: GdkToplevel; gesture: CARDINAL) : [ INTEGER ];
+
+(* gboolean gdk_toplevel_show_window_menu(GdkToplevel *toplevel, GdkEvent *event) *)
+PROCEDURE gdk_toplevel_show_window_menu (toplevel: GdkToplevel; event: ADDRESS) : INTEGER;
+
+(* gboolean gdk_toplevel_supports_edge_constraints(GdkToplevel *toplevel) *)
+PROCEDURE gdk_toplevel_supports_edge_constraints (toplevel: GdkToplevel) : INTEGER;
+
+(* gboolean gdk_toplevel_titlebar_gesture(GdkToplevel *toplevel, GdkTitlebarGesture gesture) *)
+PROCEDURE gdk_toplevel_titlebar_gesture (toplevel: GdkToplevel; gesture: CARDINAL) : INTEGER;
 
 END GdkToplevel.

+ 35 - 21
src/GdkToplevelLayout.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkToplevelLayout ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkToplevelLayout: the arrangement for presenting a toplevel.
+   Mapped onto <gdk/gdktoplevellayout.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -22,29 +25,40 @@ EXPORT UNQUALIFIED
 TYPE
    GdkToplevelLayout = ADDRESS;
 
-(* gdk_toplevel_layout_new *)
-PROCEDURE gdk_toplevel_layout_new () : [ ADDRESS ];
-(* gdk_toplevel_layout_copy *)
-PROCEDURE gdk_toplevel_layout_copy (layout: GdkToplevelLayout) : [ ADDRESS ];
-(* gdk_toplevel_layout_equal *)
-PROCEDURE gdk_toplevel_layout_equal (layout: GdkToplevelLayout; other: GdkToplevelLayout) : [ INTEGER ];
-(* gdk_toplevel_layout_get_fullscreen *)
-PROCEDURE gdk_toplevel_layout_get_fullscreen (layout: GdkToplevelLayout; VAR fullscreen: INTEGER) : [ INTEGER ];
-(* gdk_toplevel_layout_get_fullscreen_monitor *)
-PROCEDURE gdk_toplevel_layout_get_fullscreen_monitor (layout: GdkToplevelLayout) : [ ADDRESS ];
-(* gdk_toplevel_layout_get_maximized *)
-PROCEDURE gdk_toplevel_layout_get_maximized (layout: GdkToplevelLayout; VAR maximized: INTEGER) : [ INTEGER ];
-(* gdk_toplevel_layout_get_resizable *)
-PROCEDURE gdk_toplevel_layout_get_resizable (layout: GdkToplevelLayout) : [ INTEGER ];
-(* gdk_toplevel_layout_ref *)
-PROCEDURE gdk_toplevel_layout_ref (layout: GdkToplevelLayout) : [ ADDRESS ];
-(* gdk_toplevel_layout_set_fullscreen *)
+(* GdkToplevelLayout *gdk_toplevel_layout_new(void) *)
+PROCEDURE gdk_toplevel_layout_new () : GdkToplevelLayout;
+
+(* GdkToplevelLayout *gdk_toplevel_layout_copy(GdkToplevelLayout *layout) *)
+PROCEDURE gdk_toplevel_layout_copy (layout: GdkToplevelLayout) : GdkToplevelLayout;
+
+(* gboolean gdk_toplevel_layout_equal(GdkToplevelLayout *layout, GdkToplevelLayout *other) *)
+PROCEDURE gdk_toplevel_layout_equal (layout: GdkToplevelLayout; other: GdkToplevelLayout) : INTEGER;
+
+(* gboolean gdk_toplevel_layout_get_fullscreen(GdkToplevelLayout *layout, gboolean *fullscreen) *)
+PROCEDURE gdk_toplevel_layout_get_fullscreen (layout: GdkToplevelLayout; VAR fullscreen: INTEGER) : INTEGER;
+
+(* GdkMonitor *gdk_toplevel_layout_get_fullscreen_monitor(GdkToplevelLayout *layout) *)
+PROCEDURE gdk_toplevel_layout_get_fullscreen_monitor (layout: GdkToplevelLayout) : ADDRESS;
+
+(* gboolean gdk_toplevel_layout_get_maximized(GdkToplevelLayout *layout, gboolean *maximized) *)
+PROCEDURE gdk_toplevel_layout_get_maximized (layout: GdkToplevelLayout; VAR maximized: INTEGER) : INTEGER;
+
+(* gboolean gdk_toplevel_layout_get_resizable(GdkToplevelLayout *layout) *)
+PROCEDURE gdk_toplevel_layout_get_resizable (layout: GdkToplevelLayout) : INTEGER;
+
+(* GdkToplevelLayout *gdk_toplevel_layout_ref(GdkToplevelLayout *layout) *)
+PROCEDURE gdk_toplevel_layout_ref (layout: GdkToplevelLayout) : GdkToplevelLayout;
+
+(* void gdk_toplevel_layout_set_fullscreen(GdkToplevelLayout *layout, gboolean fullscreen, GdkMonitor *monitor) *)
 PROCEDURE gdk_toplevel_layout_set_fullscreen (layout: GdkToplevelLayout; fullscreen: INTEGER; monitor: ADDRESS);
-(* gdk_toplevel_layout_set_maximized *)
+
+(* void gdk_toplevel_layout_set_maximized(GdkToplevelLayout *layout, gboolean maximized) *)
 PROCEDURE gdk_toplevel_layout_set_maximized (layout: GdkToplevelLayout; maximized: INTEGER);
-(* gdk_toplevel_layout_set_resizable *)
+
+(* void gdk_toplevel_layout_set_resizable(GdkToplevelLayout *layout, gboolean resizable) *)
 PROCEDURE gdk_toplevel_layout_set_resizable (layout: GdkToplevelLayout; resizable: INTEGER);
-(* gdk_toplevel_layout_unref *)
+
+(* void gdk_toplevel_layout_unref(GdkToplevelLayout *layout) *)
 PROCEDURE gdk_toplevel_layout_unref (layout: GdkToplevelLayout);
 
 END GdkToplevelLayout.

+ 11 - 5
src/GdkToplevelSize.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkToplevelSize ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkToplevelSize: the computed size of a toplevel.
+   Mapped onto <gdk/gdktoplevelsize.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GdkToplevelSize = ADDRESS;
 
-(* gdk_toplevel_size_get_bounds *)
+(* void gdk_toplevel_size_get_bounds(GdkToplevelSize *size, int *bounds_width, int *bounds_height) *)
 PROCEDURE gdk_toplevel_size_get_bounds (size: GdkToplevelSize; VAR bounds_width: INTEGER; VAR bounds_height: INTEGER);
-(* gdk_toplevel_size_set_min_size *)
+
+(* void gdk_toplevel_size_set_min_size(GdkToplevelSize *size, int min_width, int min_height) *)
 PROCEDURE gdk_toplevel_size_set_min_size (size: GdkToplevelSize; min_width: INTEGER; min_height: INTEGER);
-(* gdk_toplevel_size_set_shadow_width *)
+
+(* void gdk_toplevel_size_set_shadow_width(GdkToplevelSize *size, int left, int right, int top, int bottom) *)
 PROCEDURE gdk_toplevel_size_set_shadow_width (size: GdkToplevelSize; left: INTEGER; right: INTEGER; top: INTEGER; bottom: INTEGER);
-(* gdk_toplevel_size_set_size *)
+
+(* void gdk_toplevel_size_set_size(GdkToplevelSize *size, int width, int height) *)
 PROCEDURE gdk_toplevel_size_set_size (size: GdkToplevelSize; width: INTEGER; height: INTEGER);
 
 END GdkToplevelSize.

+ 6 - 3
src/GdkTouchEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkTouchEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkTouchEvent: a touch event.
+   Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GdkTouchEvent = ADDRESS;
 
-(* gdk_touch_event_get_emulating_pointer *)
-PROCEDURE gdk_touch_event_get_emulating_pointer (event: GdkTouchEvent) : [ INTEGER ];
+(* gboolean gdk_touch_event_get_emulating_pointer(GdkEvent *event) *)
+PROCEDURE gdk_touch_event_get_emulating_pointer (event: GdkTouchEvent) : INTEGER;
 
 END GdkTouchEvent.

+ 17 - 10
src/GdkTouchpadEvent.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GdkTouchpadEvent ;
 
-(* Generated by tools/gir2def.py from Gdk 4.0. *)
+(*
+   m2-GTK4 - GdkTouchpadEvent: a touchpad gesture event.
+   Mapped onto <gdk/gdkevents.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,15 +18,19 @@ EXPORT UNQUALIFIED
 TYPE
    GdkTouchpadEvent = ADDRESS;
 
-(* gdk_touchpad_event_get_deltas *)
+(* void gdk_touchpad_event_get_deltas(GdkEvent *event, double *dx, double *dy) *)
 PROCEDURE gdk_touchpad_event_get_deltas (event: GdkTouchpadEvent; VAR dx: REAL; VAR dy: REAL);
-(* gdk_touchpad_event_get_gesture_phase *)
-PROCEDURE gdk_touchpad_event_get_gesture_phase (event: GdkTouchpadEvent) : [ CARDINAL ];
-(* gdk_touchpad_event_get_n_fingers *)
-PROCEDURE gdk_touchpad_event_get_n_fingers (event: GdkTouchpadEvent) : [ CARDINAL ];
-(* gdk_touchpad_event_get_pinch_angle_delta *)
-PROCEDURE gdk_touchpad_event_get_pinch_angle_delta (event: GdkTouchpadEvent) : [ REAL ];
-(* gdk_touchpad_event_get_pinch_scale *)
-PROCEDURE gdk_touchpad_event_get_pinch_scale (event: GdkTouchpadEvent) : [ REAL ];
+
+(* GdkTouchpadGesturePhase gdk_touchpad_event_get_gesture_phase(GdkEvent *event) *)
+PROCEDURE gdk_touchpad_event_get_gesture_phase (event: GdkTouchpadEvent) : CARDINAL;
+
+(* guint gdk_touchpad_event_get_n_fingers(GdkEvent *event) *)
+PROCEDURE gdk_touchpad_event_get_n_fingers (event: GdkTouchpadEvent) : CARDINAL;
+
+(* double gdk_touchpad_event_get_pinch_angle_delta(GdkEvent *event) *)
+PROCEDURE gdk_touchpad_event_get_pinch_angle_delta (event: GdkTouchpadEvent) : REAL;
+
+(* double gdk_touchpad_event_get_pinch_scale(GdkEvent *event) *)
+PROCEDURE gdk_touchpad_event_get_pinch_scale (event: GdkTouchpadEvent) : REAL;
 
 END GdkTouchpadEvent.

+ 15 - 9
src/GskBlendNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskBlendNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskBlendNode: a render node blending two children.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskBlendNode = ADDRESS;
 
-(* gsk_blend_node_new *)
-PROCEDURE gsk_blend_node_new (bottom: ADDRESS; top: ADDRESS; blend_mode: CARDINAL) : [ ADDRESS ];
-(* gsk_blend_node_get_blend_mode *)
-PROCEDURE gsk_blend_node_get_blend_mode (node: GskBlendNode) : [ CARDINAL ];
-(* gsk_blend_node_get_bottom_child *)
-PROCEDURE gsk_blend_node_get_bottom_child (node: GskBlendNode) : [ ADDRESS ];
-(* gsk_blend_node_get_top_child *)
-PROCEDURE gsk_blend_node_get_top_child (node: GskBlendNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_blend_node_new(GskRenderNode *bottom, GskRenderNode *top, GskBlendMode blend_mode) *)
+PROCEDURE gsk_blend_node_new (bottom: ADDRESS; top: ADDRESS; blend_mode: CARDINAL) : ADDRESS;
+
+(* GskBlendMode gsk_blend_node_get_blend_mode(const GskRenderNode *node) *)
+PROCEDURE gsk_blend_node_get_blend_mode (node: GskBlendNode) : CARDINAL;
+
+(* GskRenderNode *gsk_blend_node_get_bottom_child(const GskRenderNode *node) *)
+PROCEDURE gsk_blend_node_get_bottom_child (node: GskBlendNode) : ADDRESS;
+
+(* GskRenderNode *gsk_blend_node_get_top_child(const GskRenderNode *node) *)
+PROCEDURE gsk_blend_node_get_top_child (node: GskBlendNode) : ADDRESS;
 
 END GskBlendNode.

+ 12 - 7
src/GskBlurNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskBlurNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskBlurNode: a render node that blurs its child.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskBlurNode = ADDRESS;
 
-(* gsk_blur_node_new *)
-PROCEDURE gsk_blur_node_new (child: ADDRESS; radius: SHORTREAL) : [ ADDRESS ];
-(* gsk_blur_node_get_child *)
-PROCEDURE gsk_blur_node_get_child (node: GskBlurNode) : [ ADDRESS ];
-(* gsk_blur_node_get_radius *)
-PROCEDURE gsk_blur_node_get_radius (node: GskBlurNode) : [ SHORTREAL ];
+(* GskRenderNode *gsk_blur_node_new(GskRenderNode *child, float radius) *)
+PROCEDURE gsk_blur_node_new (child: ADDRESS; radius: SHORTREAL) : ADDRESS;
+
+(* GskRenderNode *gsk_blur_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_blur_node_get_child (node: GskBlurNode) : ADDRESS;
+
+(* float gsk_blur_node_get_radius(const GskRenderNode *node) *)
+PROCEDURE gsk_blur_node_get_radius (node: GskBlurNode) : SHORTREAL;
 
 END GskBlurNode.

+ 15 - 9
src/GskBorderNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskBorderNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskBorderNode: a render node that draws a border.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskBorderNode = ADDRESS;
 
-(* gsk_border_node_new *)
-PROCEDURE gsk_border_node_new (outline: ADDRESS; border_width: ADDRESS; border_color: ADDRESS) : [ ADDRESS ];
-(* gsk_border_node_get_colors *)
-PROCEDURE gsk_border_node_get_colors (node: GskBorderNode);
-(* gsk_border_node_get_outline *)
-PROCEDURE gsk_border_node_get_outline (node: GskBorderNode) : [ ADDRESS ];
-(* gsk_border_node_get_widths *)
-PROCEDURE gsk_border_node_get_widths (node: GskBorderNode);
+(* GskRenderNode *gsk_border_node_new(const GskRoundedRect *outline, const float border_width[4], const GdkRGBA border_color[4]) *)
+PROCEDURE gsk_border_node_new (outline: ADDRESS; border_width: ADDRESS; border_color: ADDRESS) : ADDRESS;
+
+(* const GdkRGBA *gsk_border_node_get_colors(const GskRenderNode *node) *)
+PROCEDURE gsk_border_node_get_colors (node: GskBorderNode) : ADDRESS;
+
+(* const GskRoundedRect *gsk_border_node_get_outline(const GskRenderNode *node) *)
+PROCEDURE gsk_border_node_get_outline (node: GskBorderNode) : ADDRESS;
+
+(* const float *gsk_border_node_get_widths(const GskRenderNode *node) *)
+PROCEDURE gsk_border_node_get_widths (node: GskBorderNode) : ADDRESS;
 
 END GskBorderNode.

+ 6 - 3
src/GskBroadwayRenderer.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskBroadwayRenderer ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskBroadwayRenderer: a GSK renderer that draws with the Broadway backend.
+   Mapped onto <gsk/broadway/gskbroadwayrenderer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskBroadwayRenderer = ADDRESS;
 
-(* gsk_broadway_renderer_new *)
-PROCEDURE gsk_broadway_renderer_new () : [ ADDRESS ];
+(* GskRenderer *gsk_broadway_renderer_new(void) *)
+PROCEDURE gsk_broadway_renderer_new () : ADDRESS;
 
 END GskBroadwayRenderer.

+ 12 - 7
src/GskCairoNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskCairoNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskCairoNode: a render node that draws with cairo.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskCairoNode = ADDRESS;
 
-(* gsk_cairo_node_new *)
-PROCEDURE gsk_cairo_node_new (bounds: ADDRESS) : [ ADDRESS ];
-(* gsk_cairo_node_get_draw_context *)
-PROCEDURE gsk_cairo_node_get_draw_context (node: GskCairoNode) : [ ADDRESS ];
-(* gsk_cairo_node_get_surface *)
-PROCEDURE gsk_cairo_node_get_surface (node: GskCairoNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_cairo_node_new(const graphene_rect_t *bounds) *)
+PROCEDURE gsk_cairo_node_new (bounds: ADDRESS) : ADDRESS;
+
+(* cairo_t *gsk_cairo_node_get_draw_context(GskRenderNode *node) *)
+PROCEDURE gsk_cairo_node_get_draw_context (node: GskCairoNode) : ADDRESS;
+
+(* cairo_surface_t *gsk_cairo_node_get_surface(GskRenderNode *node) *)
+PROCEDURE gsk_cairo_node_get_surface (node: GskCairoNode) : ADDRESS;
 
 END GskCairoNode.

+ 6 - 3
src/GskCairoRenderer.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskCairoRenderer ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskCairoRenderer: a GSK renderer that draws with cairo.
+   Mapped onto <gsk/gskcairorenderer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +14,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskCairoRenderer = ADDRESS;
 
-(* gsk_cairo_renderer_new *)
-PROCEDURE gsk_cairo_renderer_new () : [ ADDRESS ];
+(* GskRenderer *gsk_cairo_renderer_new(void) *)
+PROCEDURE gsk_cairo_renderer_new () : ADDRESS;
 
 END GskCairoRenderer.

+ 12 - 7
src/GskClipNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskClipNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskClipNode: a render node that clips its child.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskClipNode = ADDRESS;
 
-(* gsk_clip_node_new *)
-PROCEDURE gsk_clip_node_new (child: ADDRESS; clip: ADDRESS) : [ ADDRESS ];
-(* gsk_clip_node_get_child *)
-PROCEDURE gsk_clip_node_get_child (node: GskClipNode) : [ ADDRESS ];
-(* gsk_clip_node_get_clip *)
-PROCEDURE gsk_clip_node_get_clip (node: GskClipNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_clip_node_new(GskRenderNode *child, const graphene_rect_t *clip) *)
+PROCEDURE gsk_clip_node_new (child: ADDRESS; clip: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_clip_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_clip_node_get_child (node: GskClipNode) : ADDRESS;
+
+(* const graphene_rect_t *gsk_clip_node_get_clip(const GskRenderNode *node) *)
+PROCEDURE gsk_clip_node_get_clip (node: GskClipNode) : ADDRESS;
 
 END GskClipNode.

+ 15 - 9
src/GskColorMatrixNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskColorMatrixNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskColorMatrixNode: a render node that applies a color matrix.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskColorMatrixNode = ADDRESS;
 
-(* gsk_color_matrix_node_new *)
-PROCEDURE gsk_color_matrix_node_new (child: ADDRESS; color_matrix: ADDRESS; color_offset: ADDRESS) : [ ADDRESS ];
-(* gsk_color_matrix_node_get_child *)
-PROCEDURE gsk_color_matrix_node_get_child (node: GskColorMatrixNode) : [ ADDRESS ];
-(* gsk_color_matrix_node_get_color_matrix *)
-PROCEDURE gsk_color_matrix_node_get_color_matrix (node: GskColorMatrixNode) : [ ADDRESS ];
-(* gsk_color_matrix_node_get_color_offset *)
-PROCEDURE gsk_color_matrix_node_get_color_offset (node: GskColorMatrixNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_color_matrix_node_new(GskRenderNode *child, const graphene_matrix_t *color_matrix, const graphene_vec4_t *color_offset) *)
+PROCEDURE gsk_color_matrix_node_new (child: ADDRESS; color_matrix: ADDRESS; color_offset: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_color_matrix_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_color_matrix_node_get_child (node: GskColorMatrixNode) : ADDRESS;
+
+(* const graphene_matrix_t *gsk_color_matrix_node_get_color_matrix(const GskRenderNode *node) *)
+PROCEDURE gsk_color_matrix_node_get_color_matrix (node: GskColorMatrixNode) : ADDRESS;
+
+(* const graphene_vec4_t *gsk_color_matrix_node_get_color_offset(const GskRenderNode *node) *)
+PROCEDURE gsk_color_matrix_node_get_color_offset (node: GskColorMatrixNode) : ADDRESS;
 
 END GskColorMatrixNode.

+ 9 - 5
src/GskColorNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskColorNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskColorNode: a render node that fills a rectangle with a color.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -12,9 +15,10 @@ EXPORT UNQUALIFIED
 TYPE
    GskColorNode = ADDRESS;
 
-(* gsk_color_node_new *)
-PROCEDURE gsk_color_node_new (rgba: ADDRESS; bounds: ADDRESS) : [ ADDRESS ];
-(* gsk_color_node_get_color *)
-PROCEDURE gsk_color_node_get_color (node: GskColorNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_color_node_new(const GdkRGBA *rgba, const graphene_rect_t *bounds) *)
+PROCEDURE gsk_color_node_new (rgba: ADDRESS; bounds: ADDRESS) : ADDRESS;
+
+(* const GdkRGBA *gsk_color_node_get_color(const GskRenderNode *node) *)
+PROCEDURE gsk_color_node_get_color (node: GskColorNode) : ADDRESS;
 
 END GskColorNode.

+ 20 - 12
src/GskConicGradientNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskConicGradientNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskConicGradientNode: a render node that draws a conic gradient.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -16,17 +19,22 @@ EXPORT UNQUALIFIED
 TYPE
    GskConicGradientNode = ADDRESS;
 
-(* gsk_conic_gradient_node_new *)
-PROCEDURE gsk_conic_gradient_node_new (bounds: ADDRESS; center: ADDRESS; rotation: SHORTREAL; color_stops: ADDRESS) : [ ADDRESS ];
-(* gsk_conic_gradient_node_get_angle *)
-PROCEDURE gsk_conic_gradient_node_get_angle (node: GskConicGradientNode) : [ SHORTREAL ];
-(* gsk_conic_gradient_node_get_center *)
-PROCEDURE gsk_conic_gradient_node_get_center (node: GskConicGradientNode) : [ ADDRESS ];
-(* gsk_conic_gradient_node_get_color_stops *)
+(* GskRenderNode *gsk_conic_gradient_node_new(const graphene_rect_t *bounds, const graphene_point_t *center, float rotation, const GskColorStop *color_stops) *)
+PROCEDURE gsk_conic_gradient_node_new (bounds: ADDRESS; center: ADDRESS; rotation: SHORTREAL; color_stops: ADDRESS) : ADDRESS;
+
+(* float gsk_conic_gradient_node_get_angle(const GskRenderNode *node) *)
+PROCEDURE gsk_conic_gradient_node_get_angle (node: GskConicGradientNode) : SHORTREAL;
+
+(* const graphene_point_t *gsk_conic_gradient_node_get_center(const GskRenderNode *node) *)
+PROCEDURE gsk_conic_gradient_node_get_center (node: GskConicGradientNode) : ADDRESS;
+
+(* const GskColorStop *gsk_conic_gradient_node_get_color_stops(const GskRenderNode *node, gsize *n_stops) *)
 PROCEDURE gsk_conic_gradient_node_get_color_stops (node: GskConicGradientNode; VAR n_stops: LONGCARD);
-(* gsk_conic_gradient_node_get_n_color_stops *)
-PROCEDURE gsk_conic_gradient_node_get_n_color_stops (node: GskConicGradientNode) : [ LONGCARD ];
-(* gsk_conic_gradient_node_get_rotation *)
-PROCEDURE gsk_conic_gradient_node_get_rotation (node: GskConicGradientNode) : [ SHORTREAL ];
+
+(* gsize gsk_conic_gradient_node_get_n_color_stops(const GskRenderNode *node) *)
+PROCEDURE gsk_conic_gradient_node_get_n_color_stops (node: GskConicGradientNode) : LONGCARD;
+
+(* float gsk_conic_gradient_node_get_rotation(const GskRenderNode *node) *)
+PROCEDURE gsk_conic_gradient_node_get_rotation (node: GskConicGradientNode) : SHORTREAL;
 
 END GskConicGradientNode.

+ 12 - 7
src/GskContainerNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskContainerNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskContainerNode: a render node that holds a list of children.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskContainerNode = ADDRESS;
 
-(* gsk_container_node_new *)
-PROCEDURE gsk_container_node_new (children: ADDRESS) : [ ADDRESS ];
-(* gsk_container_node_get_child *)
-PROCEDURE gsk_container_node_get_child (node: GskContainerNode; idx: CARDINAL) : [ ADDRESS ];
-(* gsk_container_node_get_n_children *)
-PROCEDURE gsk_container_node_get_n_children (node: GskContainerNode) : [ CARDINAL ];
+(* GskRenderNode *gsk_container_node_new(GskRenderNode **children) *)
+PROCEDURE gsk_container_node_new (children: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_container_node_get_child(const GskRenderNode *node, guint idx) *)
+PROCEDURE gsk_container_node_get_child (node: GskContainerNode; idx: CARDINAL) : ADDRESS;
+
+(* guint gsk_container_node_get_n_children(const GskRenderNode *node) *)
+PROCEDURE gsk_container_node_get_n_children (node: GskContainerNode) : CARDINAL;
 
 END GskContainerNode.

+ 15 - 9
src/GskCrossFadeNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskCrossFadeNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskCrossFadeNode: a render node that cross-fades between two children.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskCrossFadeNode = ADDRESS;
 
-(* gsk_cross_fade_node_new *)
-PROCEDURE gsk_cross_fade_node_new (start: ADDRESS; end_: ADDRESS; progress: SHORTREAL) : [ ADDRESS ];
-(* gsk_cross_fade_node_get_end_child *)
-PROCEDURE gsk_cross_fade_node_get_end_child (node: GskCrossFadeNode) : [ ADDRESS ];
-(* gsk_cross_fade_node_get_progress *)
-PROCEDURE gsk_cross_fade_node_get_progress (node: GskCrossFadeNode) : [ SHORTREAL ];
-(* gsk_cross_fade_node_get_start_child *)
-PROCEDURE gsk_cross_fade_node_get_start_child (node: GskCrossFadeNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_cross_fade_node_new(GskRenderNode *start, GskRenderNode *end, float progress) *)
+PROCEDURE gsk_cross_fade_node_new (start: ADDRESS; end_child: ADDRESS; progress: SHORTREAL) : ADDRESS;
+
+(* GskRenderNode *gsk_cross_fade_node_get_end_child(const GskRenderNode *node) *)
+PROCEDURE gsk_cross_fade_node_get_end_child (node: GskCrossFadeNode) : ADDRESS;
+
+(* float gsk_cross_fade_node_get_progress(const GskRenderNode *node) *)
+PROCEDURE gsk_cross_fade_node_get_progress (node: GskCrossFadeNode) : SHORTREAL;
+
+(* GskRenderNode *gsk_cross_fade_node_get_start_child(const GskRenderNode *node) *)
+PROCEDURE gsk_cross_fade_node_get_start_child (node: GskCrossFadeNode) : ADDRESS;
 
 END GskCrossFadeNode.

+ 11 - 7
src/GskDebugNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskDebugNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskDebugNode: a render node that draws a debug message alongside its child.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +15,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskDebugNode = ADDRESS;
 
-(* gsk_debug_node_new *)
-PROCEDURE gsk_debug_node_new (child: ADDRESS; message: ARRAY OF CHAR) : [ ADDRESS ];
-(* gsk_debug_node_get_child *)
-PROCEDURE gsk_debug_node_get_child (node: GskDebugNode) : [ ADDRESS ];
-(* gsk_debug_node_get_message *)
-PROCEDURE gsk_debug_node_get_message (node: GskDebugNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_debug_node_new(GskRenderNode *child, char *message) *)
+PROCEDURE gsk_debug_node_new (child: ADDRESS; message: ARRAY OF CHAR) : ADDRESS;
+
+(* GskRenderNode *gsk_debug_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_debug_node_get_child (node: GskDebugNode) : ADDRESS;
+
+(* const char *gsk_debug_node_get_message(const GskRenderNode *node) *)
+PROCEDURE gsk_debug_node_get_message (node: GskDebugNode) : ADDRESS;
 
 END GskDebugNode.

+ 35 - 1
src/GskEnums.def

@@ -1,6 +1,13 @@
 DEFINITION MODULE FOR "C" GskEnums ;
 
-(* Generated by tools/gir2def.py: enumerations and bitfields. *)
+(*
+   m2-GTK4 - GSK enumerations.  Mapped onto <gsk/gskenums.h>.
+
+   Only constants live here, so this module has no C symbols of its
+   own: it is the shared home for the Gsk enum values used by several
+   render nodes and paths.  The numeric values match the C enumerators
+   exactly.
+*)
 
 EXPORT UNQUALIFIED
    GSK_BLEND_MODE_DEFAULT,
@@ -103,6 +110,7 @@ EXPORT UNQUALIFIED
    GSK_TRANSFORM_CATEGORY_IDENTITY;
 
 CONST
+   (* GskBlendMode *)
    GSK_BLEND_MODE_DEFAULT = 0;
    GSK_BLEND_MODE_MULTIPLY = 1;
    GSK_BLEND_MODE_SCREEN = 2;
@@ -119,12 +127,18 @@ CONST
    GSK_BLEND_MODE_HUE = 13;
    GSK_BLEND_MODE_SATURATION = 14;
    GSK_BLEND_MODE_LUMINOSITY = 15;
+
+   (* GskCorner *)
    GSK_CORNER_TOP_LEFT = 0;
    GSK_CORNER_TOP_RIGHT = 1;
    GSK_CORNER_BOTTOM_RIGHT = 2;
    GSK_CORNER_BOTTOM_LEFT = 3;
+
+   (* GskFillRule *)
    GSK_FILL_RULE_WINDING = 0;
    GSK_FILL_RULE_EVEN_ODD = 1;
+
+   (* GskGLUniformType *)
    GSK_GL_UNIFORM_TYPE_NONE = 0;
    GSK_GL_UNIFORM_TYPE_FLOAT = 1;
    GSK_GL_UNIFORM_TYPE_INT = 2;
@@ -133,30 +147,44 @@ CONST
    GSK_GL_UNIFORM_TYPE_VEC2 = 5;
    GSK_GL_UNIFORM_TYPE_VEC3 = 6;
    GSK_GL_UNIFORM_TYPE_VEC4 = 7;
+
+   (* GskLineCap *)
    GSK_LINE_CAP_BUTT = 0;
    GSK_LINE_CAP_ROUND = 1;
    GSK_LINE_CAP_SQUARE = 2;
+
+   (* GskLineJoin *)
    GSK_LINE_JOIN_MITER = 0;
    GSK_LINE_JOIN_ROUND = 1;
    GSK_LINE_JOIN_BEVEL = 2;
+
+   (* GskMaskMode *)
    GSK_MASK_MODE_ALPHA = 0;
    GSK_MASK_MODE_INVERTED_ALPHA = 1;
    GSK_MASK_MODE_LUMINANCE = 2;
    GSK_MASK_MODE_INVERTED_LUMINANCE = 3;
+
+   (* GskPathDirection *)
    GSK_PATH_FROM_START = 0;
    GSK_PATH_TO_START = 1;
    GSK_PATH_TO_END = 2;
    GSK_PATH_FROM_END = 3;
+
+   (* GskPathForeachFlags *)
    GSK_PATH_FOREACH_ALLOW_ONLY_LINES = 0;
    GSK_PATH_FOREACH_ALLOW_QUAD = 1;
    GSK_PATH_FOREACH_ALLOW_CUBIC = 2;
    GSK_PATH_FOREACH_ALLOW_CONIC = 4;
+
+   (* GskPathOperation *)
    GSK_PATH_MOVE = 0;
    GSK_PATH_CLOSE = 1;
    GSK_PATH_LINE = 2;
    GSK_PATH_QUAD = 3;
    GSK_PATH_CUBIC = 4;
    GSK_PATH_CONIC = 5;
+
+   (* GskRenderNodeType *)
    GSK_NOT_A_RENDER_NODE = 0;
    GSK_CONTAINER_NODE = 1;
    GSK_CAIRO_NODE = 2;
@@ -188,12 +216,18 @@ CONST
    GSK_FILL_NODE = 28;
    GSK_STROKE_NODE = 29;
    GSK_SUBSURFACE_NODE = 30;
+
+   (* GskScalingFilter *)
    GSK_SCALING_FILTER_LINEAR = 0;
    GSK_SCALING_FILTER_NEAREST = 1;
    GSK_SCALING_FILTER_TRILINEAR = 2;
+
+   (* GskSerializationError *)
    GSK_SERIALIZATION_UNSUPPORTED_FORMAT = 0;
    GSK_SERIALIZATION_UNSUPPORTED_VERSION = 1;
    GSK_SERIALIZATION_INVALID_DATA = 2;
+
+   (* GskTransformCategory *)
    GSK_TRANSFORM_CATEGORY_UNKNOWN = 0;
    GSK_TRANSFORM_CATEGORY_ANY = 1;
    GSK_TRANSFORM_CATEGORY_3D = 2;

+ 14 - 9
src/GskFillNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskFillNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskFillNode: a render node that fills a path with the child's content.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +16,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskFillNode = ADDRESS;
 
-(* gsk_fill_node_new *)
-PROCEDURE gsk_fill_node_new (child: ADDRESS; path: ADDRESS; fill_rule: CARDINAL) : [ ADDRESS ];
-(* gsk_fill_node_get_child *)
-PROCEDURE gsk_fill_node_get_child (node: GskFillNode) : [ ADDRESS ];
-(* gsk_fill_node_get_fill_rule *)
-PROCEDURE gsk_fill_node_get_fill_rule (node: GskFillNode) : [ CARDINAL ];
-(* gsk_fill_node_get_path *)
-PROCEDURE gsk_fill_node_get_path (node: GskFillNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_fill_node_new(GskRenderNode *child, GskPath *path, GskFillRule fill_rule) *)
+PROCEDURE gsk_fill_node_new (child: ADDRESS; path: ADDRESS; fill_rule: CARDINAL) : ADDRESS;
+
+(* GskRenderNode *gsk_fill_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_fill_node_get_child (node: GskFillNode) : ADDRESS;
+
+(* GskFillRule gsk_fill_node_get_fill_rule(const GskRenderNode *node) *)
+PROCEDURE gsk_fill_node_get_fill_rule (node: GskFillNode) : CARDINAL;
+
+(* GskPath *gsk_fill_node_get_path(const GskRenderNode *node) *)
+PROCEDURE gsk_fill_node_get_path (node: GskFillNode) : ADDRESS;
 
 END GskFillNode.

+ 12 - 7
src/GskFunctions.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskFunctions ;
 
-(* Generated by tools/gir2def.py: namespace-level functions. *)
+(*
+   m2-GTK4 - GskFunctions: namespace-level helpers for render nodes in GValues.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -10,13 +12,16 @@ EXPORT UNQUALIFIED
    gsk_value_set_render_node,
    gsk_value_take_render_node;
 
-(* gsk_value_dup_render_node *)
-PROCEDURE gsk_value_dup_render_node (value: ADDRESS) : [ ADDRESS ];
-(* gsk_value_get_render_node *)
-PROCEDURE gsk_value_get_render_node (value: ADDRESS) : [ ADDRESS ];
-(* gsk_value_set_render_node *)
+(* GskRenderNode *gsk_value_dup_render_node(const GValue *value) *)
+PROCEDURE gsk_value_dup_render_node (value: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_value_get_render_node(const GValue *value) *)
+PROCEDURE gsk_value_get_render_node (value: ADDRESS) : ADDRESS;
+
+(* void gsk_value_set_render_node(GValue *value, GskRenderNode *node) *)
 PROCEDURE gsk_value_set_render_node (value: ADDRESS; node: ADDRESS);
-(* gsk_value_take_render_node *)
+
+(* void gsk_value_take_render_node(GValue *value, GskRenderNode *node) *)
 PROCEDURE gsk_value_take_render_node (value: ADDRESS; node: ADDRESS);
 
 END GskFunctions.

+ 5 - 3
src/GskGLRenderer.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskGLRenderer ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskGLRenderer: the OpenGL renderer.  Mapped onto <gsk/gpu/gskglrenderer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +13,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskGLRenderer = ADDRESS;
 
-(* gsk_gl_renderer_new *)
-PROCEDURE gsk_gl_renderer_new () : [ ADDRESS ];
+(* GskRenderer *gsk_gl_renderer_new(void) *)
+PROCEDURE gsk_gl_renderer_new () : ADDRESS;
 
 END GskGLRenderer.

+ 59 - 38
src/GskGLShader.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskGLShader ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskGLShader: an OpenGL shader for use with GskGLShaderNode.  Mapped onto <gsk/gskglshader.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -30,45 +32,64 @@ EXPORT UNQUALIFIED
 TYPE
    GskGLShader = ADDRESS;
 
-(* gsk_gl_shader_new_from_bytes *)
-PROCEDURE gsk_gl_shader_new_from_bytes (sourcecode: ADDRESS) : [ ADDRESS ];
-(* gsk_gl_shader_new_from_resource *)
-PROCEDURE gsk_gl_shader_new_from_resource (resource_path: ARRAY OF CHAR) : [ ADDRESS ];
-(* gsk_gl_shader_compile *)
-PROCEDURE gsk_gl_shader_compile (shader: GskGLShader; renderer: ADDRESS) : [ INTEGER ];
-(* gsk_gl_shader_find_uniform_by_name *)
-PROCEDURE gsk_gl_shader_find_uniform_by_name (shader: GskGLShader; name: ARRAY OF CHAR) : [ INTEGER ];
-(* gsk_gl_shader_format_args_va *)
-PROCEDURE gsk_gl_shader_format_args_va (shader: GskGLShader; uniforms: ADDRESS) : [ ADDRESS ];
-(* gsk_gl_shader_get_arg_bool *)
-PROCEDURE gsk_gl_shader_get_arg_bool (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : [ INTEGER ];
-(* gsk_gl_shader_get_arg_float *)
-PROCEDURE gsk_gl_shader_get_arg_float (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : [ SHORTREAL ];
-(* gsk_gl_shader_get_arg_int *)
-PROCEDURE gsk_gl_shader_get_arg_int (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : [ INTEGER ];
-(* gsk_gl_shader_get_arg_uint *)
-PROCEDURE gsk_gl_shader_get_arg_uint (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : [ CARDINAL ];
-(* gsk_gl_shader_get_arg_vec2 *)
+(* GskGLShader *gsk_gl_shader_new_from_bytes(GBytes *sourcecode) *)
+PROCEDURE gsk_gl_shader_new_from_bytes (sourcecode: ADDRESS) : ADDRESS;
+
+(* GskGLShader *gsk_gl_shader_new_from_resource(const char *resource_path) *)
+PROCEDURE gsk_gl_shader_new_from_resource (resource_path: ARRAY OF CHAR) : ADDRESS;
+
+(* gboolean gsk_gl_shader_compile(GskGLShader *shader, GskRenderer *renderer) *)
+PROCEDURE gsk_gl_shader_compile (shader: GskGLShader; renderer: ADDRESS) : INTEGER;
+
+(* int gsk_gl_shader_find_uniform_by_name(GskGLShader *shader, const char *name) *)
+PROCEDURE gsk_gl_shader_find_uniform_by_name (shader: GskGLShader; name: ARRAY OF CHAR) : INTEGER;
+
+(* GBytes *gsk_gl_shader_format_args_va(GskGLShader *shader, va_list uniforms) *)
+PROCEDURE gsk_gl_shader_format_args_va (shader: GskGLShader; uniforms: ADDRESS) : ADDRESS;
+
+(* gboolean gsk_gl_shader_get_arg_bool(GskGLShader *shader, GBytes *args, int idx) *)
+PROCEDURE gsk_gl_shader_get_arg_bool (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : INTEGER;
+
+(* float gsk_gl_shader_get_arg_float(GskGLShader *shader, GBytes *args, int idx) *)
+PROCEDURE gsk_gl_shader_get_arg_float (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : SHORTREAL;
+
+(* gint32 gsk_gl_shader_get_arg_int(GskGLShader *shader, GBytes *args, int idx) *)
+PROCEDURE gsk_gl_shader_get_arg_int (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : INTEGER;
+
+(* guint32 gsk_gl_shader_get_arg_uint(GskGLShader *shader, GBytes *args, int idx) *)
+PROCEDURE gsk_gl_shader_get_arg_uint (shader: GskGLShader; args: ADDRESS; idx: INTEGER) : CARDINAL;
+
+(* void gsk_gl_shader_get_arg_vec2(GskGLShader *shader, GBytes *args, int idx, graphene_vec2_t *out_value) *)
 PROCEDURE gsk_gl_shader_get_arg_vec2 (shader: GskGLShader; args: ADDRESS; idx: INTEGER; out_value: ADDRESS);
-(* gsk_gl_shader_get_arg_vec3 *)
+
+(* void gsk_gl_shader_get_arg_vec3(GskGLShader *shader, GBytes *args, int idx, graphene_vec3_t *out_value) *)
 PROCEDURE gsk_gl_shader_get_arg_vec3 (shader: GskGLShader; args: ADDRESS; idx: INTEGER; out_value: ADDRESS);
-(* gsk_gl_shader_get_arg_vec4 *)
+
+(* void gsk_gl_shader_get_arg_vec4(GskGLShader *shader, GBytes *args, int idx, graphene_vec4_t *out_value) *)
 PROCEDURE gsk_gl_shader_get_arg_vec4 (shader: GskGLShader; args: ADDRESS; idx: INTEGER; out_value: ADDRESS);
-(* gsk_gl_shader_get_args_size *)
-PROCEDURE gsk_gl_shader_get_args_size (shader: GskGLShader) : [ LONGCARD ];
-(* gsk_gl_shader_get_n_textures *)
-PROCEDURE gsk_gl_shader_get_n_textures (shader: GskGLShader) : [ INTEGER ];
-(* gsk_gl_shader_get_n_uniforms *)
-PROCEDURE gsk_gl_shader_get_n_uniforms (shader: GskGLShader) : [ INTEGER ];
-(* gsk_gl_shader_get_resource *)
-PROCEDURE gsk_gl_shader_get_resource (shader: GskGLShader) : [ ADDRESS ];
-(* gsk_gl_shader_get_source *)
-PROCEDURE gsk_gl_shader_get_source (shader: GskGLShader) : [ ADDRESS ];
-(* gsk_gl_shader_get_uniform_name *)
-PROCEDURE gsk_gl_shader_get_uniform_name (shader: GskGLShader; idx: INTEGER) : [ ADDRESS ];
-(* gsk_gl_shader_get_uniform_offset *)
-PROCEDURE gsk_gl_shader_get_uniform_offset (shader: GskGLShader; idx: INTEGER) : [ INTEGER ];
-(* gsk_gl_shader_get_uniform_type *)
-PROCEDURE gsk_gl_shader_get_uniform_type (shader: GskGLShader; idx: INTEGER) : [ CARDINAL ];
+
+(* gsize gsk_gl_shader_get_args_size(GskGLShader *shader) *)
+PROCEDURE gsk_gl_shader_get_args_size (shader: GskGLShader) : LONGCARD;
+
+(* int gsk_gl_shader_get_n_textures(GskGLShader *shader) *)
+PROCEDURE gsk_gl_shader_get_n_textures (shader: GskGLShader) : INTEGER;
+
+(* int gsk_gl_shader_get_n_uniforms(GskGLShader *shader) *)
+PROCEDURE gsk_gl_shader_get_n_uniforms (shader: GskGLShader) : INTEGER;
+
+(* const char *gsk_gl_shader_get_resource(GskGLShader *shader) *)
+PROCEDURE gsk_gl_shader_get_resource (shader: GskGLShader) : ADDRESS;
+
+(* GBytes *gsk_gl_shader_get_source(GskGLShader *shader) *)
+PROCEDURE gsk_gl_shader_get_source (shader: GskGLShader) : ADDRESS;
+
+(* const char *gsk_gl_shader_get_uniform_name(GskGLShader *shader, int idx) *)
+PROCEDURE gsk_gl_shader_get_uniform_name (shader: GskGLShader; idx: INTEGER) : ADDRESS;
+
+(* int gsk_gl_shader_get_uniform_offset(GskGLShader *shader, int idx) *)
+PROCEDURE gsk_gl_shader_get_uniform_offset (shader: GskGLShader; idx: INTEGER) : INTEGER;
+
+(* GskGLUniformType gsk_gl_shader_get_uniform_type(GskGLShader *shader, int idx) *)
+PROCEDURE gsk_gl_shader_get_uniform_type (shader: GskGLShader; idx: INTEGER) : CARDINAL;
 
 END GskGLShader.

+ 17 - 11
src/GskGLShaderNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskGLShaderNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskGLShaderNode: a render node that runs an OpenGL shader.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,15 +17,19 @@ EXPORT UNQUALIFIED
 TYPE
    GskGLShaderNode = ADDRESS;
 
-(* gsk_gl_shader_node_new *)
-PROCEDURE gsk_gl_shader_node_new (shader: ADDRESS; bounds: ADDRESS; args: ADDRESS; children: ADDRESS) : [ ADDRESS ];
-(* gsk_gl_shader_node_get_args *)
-PROCEDURE gsk_gl_shader_node_get_args (node: GskGLShaderNode) : [ ADDRESS ];
-(* gsk_gl_shader_node_get_child *)
-PROCEDURE gsk_gl_shader_node_get_child (node: GskGLShaderNode; idx: CARDINAL) : [ ADDRESS ];
-(* gsk_gl_shader_node_get_n_children *)
-PROCEDURE gsk_gl_shader_node_get_n_children (node: GskGLShaderNode) : [ CARDINAL ];
-(* gsk_gl_shader_node_get_shader *)
-PROCEDURE gsk_gl_shader_node_get_shader (node: GskGLShaderNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_gl_shader_node_new(GskGLShader *shader, const graphene_rect_t *bounds, GBytes *args, GskRenderNode **children, guint n_children) *)
+PROCEDURE gsk_gl_shader_node_new (shader: ADDRESS; bounds: ADDRESS; args: ADDRESS; children: ADDRESS) : ADDRESS;
+
+(* GBytes *gsk_gl_shader_node_get_args(const GskRenderNode *node) *)
+PROCEDURE gsk_gl_shader_node_get_args (node: GskGLShaderNode) : ADDRESS;
+
+(* GskRenderNode *gsk_gl_shader_node_get_child(const GskRenderNode *node, guint idx) *)
+PROCEDURE gsk_gl_shader_node_get_child (node: GskGLShaderNode; idx: CARDINAL) : ADDRESS;
+
+(* guint gsk_gl_shader_node_get_n_children(const GskRenderNode *node) *)
+PROCEDURE gsk_gl_shader_node_get_n_children (node: GskGLShaderNode) : CARDINAL;
+
+(* GskGLShader *gsk_gl_shader_node_get_shader(const GskRenderNode *node) *)
+PROCEDURE gsk_gl_shader_node_get_shader (node: GskGLShaderNode) : ADDRESS;
 
 END GskGLShaderNode.

+ 23 - 15
src/GskInsetShadowNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskInsetShadowNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskInsetShadowNode: a render node that draws an inset shadow.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -17,19 +19,25 @@ EXPORT UNQUALIFIED
 TYPE
    GskInsetShadowNode = ADDRESS;
 
-(* gsk_inset_shadow_node_new *)
-PROCEDURE gsk_inset_shadow_node_new (outline: ADDRESS; color: ADDRESS; dx: SHORTREAL; dy: SHORTREAL; spread: SHORTREAL; blur_radius: SHORTREAL) : [ ADDRESS ];
-(* gsk_inset_shadow_node_get_blur_radius *)
-PROCEDURE gsk_inset_shadow_node_get_blur_radius (node: GskInsetShadowNode) : [ SHORTREAL ];
-(* gsk_inset_shadow_node_get_color *)
-PROCEDURE gsk_inset_shadow_node_get_color (node: GskInsetShadowNode) : [ ADDRESS ];
-(* gsk_inset_shadow_node_get_dx *)
-PROCEDURE gsk_inset_shadow_node_get_dx (node: GskInsetShadowNode) : [ SHORTREAL ];
-(* gsk_inset_shadow_node_get_dy *)
-PROCEDURE gsk_inset_shadow_node_get_dy (node: GskInsetShadowNode) : [ SHORTREAL ];
-(* gsk_inset_shadow_node_get_outline *)
-PROCEDURE gsk_inset_shadow_node_get_outline (node: GskInsetShadowNode) : [ ADDRESS ];
-(* gsk_inset_shadow_node_get_spread *)
-PROCEDURE gsk_inset_shadow_node_get_spread (node: GskInsetShadowNode) : [ SHORTREAL ];
+(* GskRenderNode *gsk_inset_shadow_node_new(const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius) *)
+PROCEDURE gsk_inset_shadow_node_new (outline: ADDRESS; color: ADDRESS; dx: SHORTREAL; dy: SHORTREAL; spread: SHORTREAL; blur_radius: SHORTREAL) : ADDRESS;
+
+(* float gsk_inset_shadow_node_get_blur_radius(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_blur_radius (node: GskInsetShadowNode) : SHORTREAL;
+
+(* const GdkRGBA *gsk_inset_shadow_node_get_color(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_color (node: GskInsetShadowNode) : ADDRESS;
+
+(* float gsk_inset_shadow_node_get_dx(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_dx (node: GskInsetShadowNode) : SHORTREAL;
+
+(* float gsk_inset_shadow_node_get_dy(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_dy (node: GskInsetShadowNode) : SHORTREAL;
+
+(* const GskRoundedRect *gsk_inset_shadow_node_get_outline(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_outline (node: GskInsetShadowNode) : ADDRESS;
+
+(* float gsk_inset_shadow_node_get_spread(const GskRenderNode *node) *)
+PROCEDURE gsk_inset_shadow_node_get_spread (node: GskInsetShadowNode) : SHORTREAL;
 
 END GskInsetShadowNode.

+ 16 - 10
src/GskLinearGradientNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskLinearGradientNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskLinearGradientNode: a linear gradient render node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -15,15 +17,19 @@ EXPORT UNQUALIFIED
 TYPE
    GskLinearGradientNode = ADDRESS;
 
-(* gsk_linear_gradient_node_new *)
-PROCEDURE gsk_linear_gradient_node_new (bounds: ADDRESS; start: ADDRESS; end_: ADDRESS; color_stops: ADDRESS) : [ ADDRESS ];
-(* gsk_linear_gradient_node_get_color_stops *)
+(* GskRenderNode *gsk_linear_gradient_node_new(const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops) *)
+PROCEDURE gsk_linear_gradient_node_new (bounds: ADDRESS; start: ADDRESS; theEnd: ADDRESS; color_stops: ADDRESS) : ADDRESS;
+
+(* const GskColorStop *gsk_linear_gradient_node_get_color_stops(const GskRenderNode *node, gsize *n_stops) *)
 PROCEDURE gsk_linear_gradient_node_get_color_stops (node: GskLinearGradientNode; VAR n_stops: LONGCARD);
-(* gsk_linear_gradient_node_get_end *)
-PROCEDURE gsk_linear_gradient_node_get_end (node: GskLinearGradientNode) : [ ADDRESS ];
-(* gsk_linear_gradient_node_get_n_color_stops *)
-PROCEDURE gsk_linear_gradient_node_get_n_color_stops (node: GskLinearGradientNode) : [ LONGCARD ];
-(* gsk_linear_gradient_node_get_start *)
-PROCEDURE gsk_linear_gradient_node_get_start (node: GskLinearGradientNode) : [ ADDRESS ];
+
+(* const graphene_point_t *gsk_linear_gradient_node_get_end(const GskRenderNode *node) *)
+PROCEDURE gsk_linear_gradient_node_get_end (node: GskLinearGradientNode) : ADDRESS;
+
+(* gsize gsk_linear_gradient_node_get_n_color_stops(const GskRenderNode *node) *)
+PROCEDURE gsk_linear_gradient_node_get_n_color_stops (node: GskLinearGradientNode) : LONGCARD;
+
+(* const graphene_point_t *gsk_linear_gradient_node_get_start(const GskRenderNode *node) *)
+PROCEDURE gsk_linear_gradient_node_get_start (node: GskLinearGradientNode) : ADDRESS;
 
 END GskLinearGradientNode.

+ 14 - 9
src/GskMaskNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskMaskNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskMaskNode: a render node that masks a source with a mask node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +16,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskMaskNode = ADDRESS;
 
-(* gsk_mask_node_new *)
-PROCEDURE gsk_mask_node_new (source: ADDRESS; mask: ADDRESS; mask_mode: CARDINAL) : [ ADDRESS ];
-(* gsk_mask_node_get_mask *)
-PROCEDURE gsk_mask_node_get_mask (node: GskMaskNode) : [ ADDRESS ];
-(* gsk_mask_node_get_mask_mode *)
-PROCEDURE gsk_mask_node_get_mask_mode (node: GskMaskNode) : [ CARDINAL ];
-(* gsk_mask_node_get_source *)
-PROCEDURE gsk_mask_node_get_source (node: GskMaskNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_mask_node_new(GskRenderNode *source, GskRenderNode *mask, GskMaskMode mask_mode) *)
+PROCEDURE gsk_mask_node_new (source: ADDRESS; mask: ADDRESS; mask_mode: CARDINAL) : ADDRESS;
+
+(* GskRenderNode *gsk_mask_node_get_mask(const GskRenderNode *node) *)
+PROCEDURE gsk_mask_node_get_mask (node: GskMaskNode) : ADDRESS;
+
+(* GskMaskMode gsk_mask_node_get_mask_mode(const GskRenderNode *node) *)
+PROCEDURE gsk_mask_node_get_mask_mode (node: GskMaskNode) : CARDINAL;
+
+(* GskRenderNode *gsk_mask_node_get_source(const GskRenderNode *node) *)
+PROCEDURE gsk_mask_node_get_source (node: GskMaskNode) : ADDRESS;
 
 END GskMaskNode.

+ 5 - 3
src/GskNglRenderer.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskNglRenderer ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskNglRenderer: the deprecated next-generation GL renderer.  Mapped onto <gsk/gpu/gskglrenderer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +13,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskNglRenderer = ADDRESS;
 
-(* gsk_ngl_renderer_new *)
-PROCEDURE gsk_ngl_renderer_new () : [ ADDRESS ];
+(* GskRenderer *gsk_ngl_renderer_new(void) *)
+PROCEDURE gsk_ngl_renderer_new () : ADDRESS;
 
 END GskNglRenderer.

+ 11 - 7
src/GskOpacityNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskOpacityNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskOpacityNode: a render node that draws its child with reduced opacity.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +15,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskOpacityNode = ADDRESS;
 
-(* gsk_opacity_node_new *)
-PROCEDURE gsk_opacity_node_new (child: ADDRESS; opacity: SHORTREAL) : [ ADDRESS ];
-(* gsk_opacity_node_get_child *)
-PROCEDURE gsk_opacity_node_get_child (node: GskOpacityNode) : [ ADDRESS ];
-(* gsk_opacity_node_get_opacity *)
-PROCEDURE gsk_opacity_node_get_opacity (node: GskOpacityNode) : [ SHORTREAL ];
+(* GskRenderNode *gsk_opacity_node_new(GskRenderNode *child, float opacity) *)
+PROCEDURE gsk_opacity_node_new (child: ADDRESS; opacity: SHORTREAL) : ADDRESS;
+
+(* GskRenderNode *gsk_opacity_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_opacity_node_get_child (node: GskOpacityNode) : ADDRESS;
+
+(* float gsk_opacity_node_get_opacity(const GskRenderNode *node) *)
+PROCEDURE gsk_opacity_node_get_opacity (node: GskOpacityNode) : SHORTREAL;
 
 END GskOpacityNode.

+ 17 - 15
src/GskOutsetShadowNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskOutsetShadowNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskOutsetShadowNode: an outset shadow render node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -17,19 +19,19 @@ EXPORT UNQUALIFIED
 TYPE
    GskOutsetShadowNode = ADDRESS;
 
-(* gsk_outset_shadow_node_new *)
-PROCEDURE gsk_outset_shadow_node_new (outline: ADDRESS; color: ADDRESS; dx: SHORTREAL; dy: SHORTREAL; spread: SHORTREAL; blur_radius: SHORTREAL) : [ ADDRESS ];
-(* gsk_outset_shadow_node_get_blur_radius *)
-PROCEDURE gsk_outset_shadow_node_get_blur_radius (node: GskOutsetShadowNode) : [ SHORTREAL ];
-(* gsk_outset_shadow_node_get_color *)
-PROCEDURE gsk_outset_shadow_node_get_color (node: GskOutsetShadowNode) : [ ADDRESS ];
-(* gsk_outset_shadow_node_get_dx *)
-PROCEDURE gsk_outset_shadow_node_get_dx (node: GskOutsetShadowNode) : [ SHORTREAL ];
-(* gsk_outset_shadow_node_get_dy *)
-PROCEDURE gsk_outset_shadow_node_get_dy (node: GskOutsetShadowNode) : [ SHORTREAL ];
-(* gsk_outset_shadow_node_get_outline *)
-PROCEDURE gsk_outset_shadow_node_get_outline (node: GskOutsetShadowNode) : [ ADDRESS ];
-(* gsk_outset_shadow_node_get_spread *)
-PROCEDURE gsk_outset_shadow_node_get_spread (node: GskOutsetShadowNode) : [ SHORTREAL ];
+(* GskRenderNode *gsk_outset_shadow_node_new(const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius) *)
+PROCEDURE gsk_outset_shadow_node_new (outline: ADDRESS; color: ADDRESS; dx: SHORTREAL; dy: SHORTREAL; spread: SHORTREAL; blur_radius: SHORTREAL) : ADDRESS;
+(* float gsk_outset_shadow_node_get_blur_radius(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_blur_radius (node: GskOutsetShadowNode) : SHORTREAL;
+(* const GdkRGBA *gsk_outset_shadow_node_get_color(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_color (node: GskOutsetShadowNode) : ADDRESS;
+(* float gsk_outset_shadow_node_get_dx(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_dx (node: GskOutsetShadowNode) : SHORTREAL;
+(* float gsk_outset_shadow_node_get_dy(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_dy (node: GskOutsetShadowNode) : SHORTREAL;
+(* const GskRoundedRect *gsk_outset_shadow_node_get_outline(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_outline (node: GskOutsetShadowNode) : ADDRESS;
+(* float gsk_outset_shadow_node_get_spread(const GskRenderNode *node) *)
+PROCEDURE gsk_outset_shadow_node_get_spread (node: GskOutsetShadowNode) : SHORTREAL;
 
 END GskOutsetShadowNode.

+ 30 - 28
src/GskPath.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskPath ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskPath: an immutable, conic-capable path.  Mapped onto <gsk/gskpath.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -25,35 +27,35 @@ EXPORT UNQUALIFIED
 TYPE
    GskPath = ADDRESS;
 
-(* gsk_path_foreach *)
-PROCEDURE gsk_path_foreach (self: GskPath; flags: CARDINAL; user_data: ADDRESS) : [ INTEGER ];
-(* gsk_path_get_bounds *)
-PROCEDURE gsk_path_get_bounds (self: GskPath; bounds: ADDRESS) : [ INTEGER ];
-(* gsk_path_get_closest_point *)
-PROCEDURE gsk_path_get_closest_point (self: GskPath; point: ADDRESS; threshold: SHORTREAL; result: ADDRESS; VAR distance: SHORTREAL) : [ INTEGER ];
-(* gsk_path_get_end_point *)
-PROCEDURE gsk_path_get_end_point (self: GskPath; result: ADDRESS) : [ INTEGER ];
-(* gsk_path_get_start_point *)
-PROCEDURE gsk_path_get_start_point (self: GskPath; result: ADDRESS) : [ INTEGER ];
-(* gsk_path_get_stroke_bounds *)
-PROCEDURE gsk_path_get_stroke_bounds (self: GskPath; stroke: ADDRESS; bounds: ADDRESS) : [ INTEGER ];
-(* gsk_path_in_fill *)
-PROCEDURE gsk_path_in_fill (self: GskPath; point: ADDRESS; fill_rule: CARDINAL) : [ INTEGER ];
-(* gsk_path_is_closed *)
-PROCEDURE gsk_path_is_closed (self: GskPath) : [ INTEGER ];
-(* gsk_path_is_empty *)
-PROCEDURE gsk_path_is_empty (self: GskPath) : [ INTEGER ];
-(* gsk_path_print *)
+(* gboolean gsk_path_foreach(GskPath *self, GskPathForeachFlags flags, gpointer user_data) *)
+PROCEDURE gsk_path_foreach (self: GskPath; flags: CARDINAL; user_data: ADDRESS) : INTEGER;
+(* gboolean gsk_path_get_bounds(GskPath *self, graphene_rect_t *bounds) *)
+PROCEDURE gsk_path_get_bounds (self: GskPath; bounds: ADDRESS) : INTEGER;
+(* gboolean gsk_path_get_closest_point(GskPath *self, const graphene_point_t *point, float threshold, GskPathPoint *result, float *distance) *)
+PROCEDURE gsk_path_get_closest_point (self: GskPath; point: ADDRESS; threshold: SHORTREAL; result: ADDRESS; VAR distance: SHORTREAL) : INTEGER;
+(* gboolean gsk_path_get_end_point(GskPath *self, GskPathPoint *result) *)
+PROCEDURE gsk_path_get_end_point (self: GskPath; result: ADDRESS) : INTEGER;
+(* gboolean gsk_path_get_start_point(GskPath *self, GskPathPoint *result) *)
+PROCEDURE gsk_path_get_start_point (self: GskPath; result: ADDRESS) : INTEGER;
+(* gboolean gsk_path_get_stroke_bounds(GskPath *self, const GskStroke *stroke, graphene_rect_t *bounds) *)
+PROCEDURE gsk_path_get_stroke_bounds (self: GskPath; stroke: ADDRESS; bounds: ADDRESS) : INTEGER;
+(* gboolean gsk_path_in_fill(GskPath *self, const graphene_point_t *point, GskFillRule fill_rule) *)
+PROCEDURE gsk_path_in_fill (self: GskPath; point: ADDRESS; fill_rule: CARDINAL) : INTEGER;
+(* gboolean gsk_path_is_closed(GskPath *self) *)
+PROCEDURE gsk_path_is_closed (self: GskPath) : INTEGER;
+(* gboolean gsk_path_is_empty(GskPath *self) *)
+PROCEDURE gsk_path_is_empty (self: GskPath) : INTEGER;
+(* void gsk_path_print(GskPath *self, GString *string) *)
 PROCEDURE gsk_path_print (self: GskPath; string: ADDRESS);
-(* gsk_path_ref *)
-PROCEDURE gsk_path_ref (self: GskPath) : [ ADDRESS ];
-(* gsk_path_to_cairo *)
+(* GskPath *gsk_path_ref(GskPath *self) *)
+PROCEDURE gsk_path_ref (self: GskPath) : ADDRESS;
+(* void gsk_path_to_cairo(GskPath *self, cairo_t *cr) *)
 PROCEDURE gsk_path_to_cairo (self: GskPath; cr: ADDRESS);
-(* gsk_path_to_string *)
-PROCEDURE gsk_path_to_string (self: GskPath) : [ ADDRESS ];
-(* gsk_path_unref *)
+(* char *gsk_path_to_string(GskPath *self) *)
+PROCEDURE gsk_path_to_string (self: GskPath) : ADDRESS;
+(* void gsk_path_unref(GskPath *self) *)
 PROCEDURE gsk_path_unref (self: GskPath);
-(* gsk_path_parse *)
-PROCEDURE gsk_path_parse (string: ARRAY OF CHAR) : [ ADDRESS ];
+(* GskPath *gsk_path_parse(const char *string) *)
+PROCEDURE gsk_path_parse (string: ARRAY OF CHAR) : ADDRESS;
 
 END GskPath.

+ 40 - 38
src/GskPathBuilder.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskPathBuilder ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskPathBuilder: builds GskPath objects.  Mapped onto <gsk/gskpathbuilder.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -41,67 +43,67 @@ EXPORT UNQUALIFIED
 TYPE
    GskPathBuilder = ADDRESS;
 
-(* gsk_path_builder_new *)
-PROCEDURE gsk_path_builder_new () : [ ADDRESS ];
-(* gsk_path_builder_add_cairo_path *)
+(* GskPathBuilder *gsk_path_builder_new(void) *)
+PROCEDURE gsk_path_builder_new () : ADDRESS;
+(* void gsk_path_builder_add_cairo_path(GskPathBuilder *self, const cairo_path_t *path) *)
 PROCEDURE gsk_path_builder_add_cairo_path (self: GskPathBuilder; path: ADDRESS);
-(* gsk_path_builder_add_circle *)
+(* void gsk_path_builder_add_circle(GskPathBuilder *self, const graphene_point_t *center, float radius) *)
 PROCEDURE gsk_path_builder_add_circle (self: GskPathBuilder; center: ADDRESS; radius: SHORTREAL);
-(* gsk_path_builder_add_layout *)
+(* void gsk_path_builder_add_layout(GskPathBuilder *self, PangoLayout *layout) *)
 PROCEDURE gsk_path_builder_add_layout (self: GskPathBuilder; layout: ADDRESS);
-(* gsk_path_builder_add_path *)
+(* void gsk_path_builder_add_path(GskPathBuilder *self, GskPath *path) *)
 PROCEDURE gsk_path_builder_add_path (self: GskPathBuilder; path: ADDRESS);
-(* gsk_path_builder_add_rect *)
+(* void gsk_path_builder_add_rect(GskPathBuilder *self, const graphene_rect_t *rect) *)
 PROCEDURE gsk_path_builder_add_rect (self: GskPathBuilder; rect: ADDRESS);
-(* gsk_path_builder_add_reverse_path *)
+(* void gsk_path_builder_add_reverse_path(GskPathBuilder *self, GskPath *path) *)
 PROCEDURE gsk_path_builder_add_reverse_path (self: GskPathBuilder; path: ADDRESS);
-(* gsk_path_builder_add_rounded_rect *)
+(* void gsk_path_builder_add_rounded_rect(GskPathBuilder *self, const GskRoundedRect *rect) *)
 PROCEDURE gsk_path_builder_add_rounded_rect (self: GskPathBuilder; rect: ADDRESS);
-(* gsk_path_builder_add_segment *)
-PROCEDURE gsk_path_builder_add_segment (self: GskPathBuilder; path: ADDRESS; start: ADDRESS; end_: ADDRESS);
-(* gsk_path_builder_arc_to *)
+(* void gsk_path_builder_add_segment(GskPathBuilder *self, GskPath *path, const GskPathPoint *start, const GskPathPoint *end) *)
+PROCEDURE gsk_path_builder_add_segment (self: GskPathBuilder; path: ADDRESS; start: ADDRESS; theEnd: ADDRESS);
+(* void gsk_path_builder_arc_to(GskPathBuilder *self, float x1, float y1, float x2, float y2) *)
 PROCEDURE gsk_path_builder_arc_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL);
-(* gsk_path_builder_close *)
+(* void gsk_path_builder_close(GskPathBuilder *self) *)
 PROCEDURE gsk_path_builder_close (self: GskPathBuilder);
-(* gsk_path_builder_conic_to *)
+(* void gsk_path_builder_conic_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float weight) *)
 PROCEDURE gsk_path_builder_conic_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; weight: SHORTREAL);
-(* gsk_path_builder_cubic_to *)
+(* void gsk_path_builder_cubic_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float x3, float y3) *)
 PROCEDURE gsk_path_builder_cubic_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; x3: SHORTREAL; y3: SHORTREAL);
-(* gsk_path_builder_free_to_path *)
-PROCEDURE gsk_path_builder_free_to_path (self: GskPathBuilder) : [ ADDRESS ];
-(* gsk_path_builder_get_current_point *)
-PROCEDURE gsk_path_builder_get_current_point (self: GskPathBuilder) : [ ADDRESS ];
-(* gsk_path_builder_html_arc_to *)
+(* GskPath *gsk_path_builder_free_to_path(GskPathBuilder *self) *)
+PROCEDURE gsk_path_builder_free_to_path (self: GskPathBuilder) : ADDRESS;
+(* const graphene_point_t *gsk_path_builder_get_current_point(GskPathBuilder *self) *)
+PROCEDURE gsk_path_builder_get_current_point (self: GskPathBuilder) : ADDRESS;
+(* void gsk_path_builder_html_arc_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float radius) *)
 PROCEDURE gsk_path_builder_html_arc_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; radius: SHORTREAL);
-(* gsk_path_builder_line_to *)
+(* void gsk_path_builder_line_to(GskPathBuilder *self, float x, float y) *)
 PROCEDURE gsk_path_builder_line_to (self: GskPathBuilder; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_move_to *)
+(* void gsk_path_builder_move_to(GskPathBuilder *self, float x, float y) *)
 PROCEDURE gsk_path_builder_move_to (self: GskPathBuilder; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_quad_to *)
+(* void gsk_path_builder_quad_to(GskPathBuilder *self, float x1, float y1, float x2, float y2) *)
 PROCEDURE gsk_path_builder_quad_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL);
-(* gsk_path_builder_ref *)
-PROCEDURE gsk_path_builder_ref (self: GskPathBuilder) : [ ADDRESS ];
-(* gsk_path_builder_rel_arc_to *)
+(* GskPathBuilder *gsk_path_builder_ref(GskPathBuilder *self) *)
+PROCEDURE gsk_path_builder_ref (self: GskPathBuilder) : ADDRESS;
+(* void gsk_path_builder_rel_arc_to(GskPathBuilder *self, float x1, float y1, float x2, float y2) *)
 PROCEDURE gsk_path_builder_rel_arc_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL);
-(* gsk_path_builder_rel_conic_to *)
+(* void gsk_path_builder_rel_conic_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float weight) *)
 PROCEDURE gsk_path_builder_rel_conic_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; weight: SHORTREAL);
-(* gsk_path_builder_rel_cubic_to *)
+(* void gsk_path_builder_rel_cubic_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float x3, float y3) *)
 PROCEDURE gsk_path_builder_rel_cubic_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; x3: SHORTREAL; y3: SHORTREAL);
-(* gsk_path_builder_rel_html_arc_to *)
+(* void gsk_path_builder_rel_html_arc_to(GskPathBuilder *self, float x1, float y1, float x2, float y2, float radius) *)
 PROCEDURE gsk_path_builder_rel_html_arc_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL; radius: SHORTREAL);
-(* gsk_path_builder_rel_line_to *)
+(* void gsk_path_builder_rel_line_to(GskPathBuilder *self, float x, float y) *)
 PROCEDURE gsk_path_builder_rel_line_to (self: GskPathBuilder; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_rel_move_to *)
+(* void gsk_path_builder_rel_move_to(GskPathBuilder *self, float x, float y) *)
 PROCEDURE gsk_path_builder_rel_move_to (self: GskPathBuilder; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_rel_quad_to *)
+(* void gsk_path_builder_rel_quad_to(GskPathBuilder *self, float x1, float y1, float x2, float y2) *)
 PROCEDURE gsk_path_builder_rel_quad_to (self: GskPathBuilder; x1: SHORTREAL; y1: SHORTREAL; x2: SHORTREAL; y2: SHORTREAL);
-(* gsk_path_builder_rel_svg_arc_to *)
+(* void gsk_path_builder_rel_svg_arc_to(GskPathBuilder *self, float rx, float ry, float x_axis_rotation, gboolean large_arc, gboolean positive_sweep, float x, float y) *)
 PROCEDURE gsk_path_builder_rel_svg_arc_to (self: GskPathBuilder; rx: SHORTREAL; ry: SHORTREAL; x_axis_rotation: SHORTREAL; large_arc: INTEGER; positive_sweep: INTEGER; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_svg_arc_to *)
+(* void gsk_path_builder_svg_arc_to(GskPathBuilder *self, float rx, float ry, float x_axis_rotation, gboolean large_arc, gboolean positive_sweep, float x, float y) *)
 PROCEDURE gsk_path_builder_svg_arc_to (self: GskPathBuilder; rx: SHORTREAL; ry: SHORTREAL; x_axis_rotation: SHORTREAL; large_arc: INTEGER; positive_sweep: INTEGER; x: SHORTREAL; y: SHORTREAL);
-(* gsk_path_builder_to_path *)
-PROCEDURE gsk_path_builder_to_path (self: GskPathBuilder) : [ ADDRESS ];
-(* gsk_path_builder_unref *)
+(* GskPath *gsk_path_builder_to_path(GskPathBuilder *self) *)
+PROCEDURE gsk_path_builder_to_path (self: GskPathBuilder) : ADDRESS;
+(* void gsk_path_builder_unref(GskPathBuilder *self) *)
 PROCEDURE gsk_path_builder_unref (self: GskPathBuilder);
 
 END GskPathBuilder.

+ 18 - 16
src/GskPathMeasure.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskPathMeasure ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskPathMeasure: measures positions along a GskPath.  Mapped onto <gsk/gskpathmeasure.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,21 +20,21 @@ EXPORT UNQUALIFIED
 TYPE
    GskPathMeasure = ADDRESS;
 
-(* gsk_path_measure_new *)
-PROCEDURE gsk_path_measure_new (path: ADDRESS) : [ ADDRESS ];
-(* gsk_path_measure_new_with_tolerance *)
-PROCEDURE gsk_path_measure_new_with_tolerance (path: ADDRESS; tolerance: SHORTREAL) : [ ADDRESS ];
-(* gsk_path_measure_get_length *)
-PROCEDURE gsk_path_measure_get_length (self: GskPathMeasure) : [ SHORTREAL ];
-(* gsk_path_measure_get_path *)
-PROCEDURE gsk_path_measure_get_path (self: GskPathMeasure) : [ ADDRESS ];
-(* gsk_path_measure_get_point *)
-PROCEDURE gsk_path_measure_get_point (self: GskPathMeasure; distance: SHORTREAL; result: ADDRESS) : [ INTEGER ];
-(* gsk_path_measure_get_tolerance *)
-PROCEDURE gsk_path_measure_get_tolerance (self: GskPathMeasure) : [ SHORTREAL ];
-(* gsk_path_measure_ref *)
-PROCEDURE gsk_path_measure_ref (self: GskPathMeasure) : [ ADDRESS ];
-(* gsk_path_measure_unref *)
+(* GskPathMeasure *gsk_path_measure_new(GskPath *path) *)
+PROCEDURE gsk_path_measure_new (path: ADDRESS) : ADDRESS;
+(* GskPathMeasure *gsk_path_measure_new_with_tolerance(GskPath *path, float tolerance) *)
+PROCEDURE gsk_path_measure_new_with_tolerance (path: ADDRESS; tolerance: SHORTREAL) : ADDRESS;
+(* float gsk_path_measure_get_length(GskPathMeasure *self) *)
+PROCEDURE gsk_path_measure_get_length (self: GskPathMeasure) : SHORTREAL;
+(* GskPath *gsk_path_measure_get_path(GskPathMeasure *self) *)
+PROCEDURE gsk_path_measure_get_path (self: GskPathMeasure) : ADDRESS;
+(* gboolean gsk_path_measure_get_point(GskPathMeasure *self, float distance, GskPathPoint *result) *)
+PROCEDURE gsk_path_measure_get_point (self: GskPathMeasure; distance: SHORTREAL; result: ADDRESS) : INTEGER;
+(* float gsk_path_measure_get_tolerance(GskPathMeasure *self) *)
+PROCEDURE gsk_path_measure_get_tolerance (self: GskPathMeasure) : SHORTREAL;
+(* GskPathMeasure *gsk_path_measure_ref(GskPathMeasure *self) *)
+PROCEDURE gsk_path_measure_ref (self: GskPathMeasure) : ADDRESS;
+(* void gsk_path_measure_unref(GskPathMeasure *self) *)
 PROCEDURE gsk_path_measure_unref (self: GskPathMeasure);
 
 END GskPathMeasure.

+ 18 - 16
src/GskPathPoint.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskPathPoint ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskPathPoint: a position on a GskPath.  Mapped onto <gsk/gskpathpoint.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -19,23 +21,23 @@ EXPORT UNQUALIFIED
 TYPE
    GskPathPoint = ADDRESS;
 
-(* gsk_path_point_compare *)
-PROCEDURE gsk_path_point_compare (point1: GskPathPoint; point2: GskPathPoint) : [ INTEGER ];
-(* gsk_path_point_copy *)
-PROCEDURE gsk_path_point_copy (point: GskPathPoint) : [ ADDRESS ];
-(* gsk_path_point_equal *)
-PROCEDURE gsk_path_point_equal (point1: GskPathPoint; point2: GskPathPoint) : [ INTEGER ];
-(* gsk_path_point_free *)
+(* int gsk_path_point_compare(const GskPathPoint *point1, const GskPathPoint *point2) *)
+PROCEDURE gsk_path_point_compare (point1: GskPathPoint; point2: GskPathPoint) : INTEGER;
+(* GskPathPoint *gsk_path_point_copy(GskPathPoint *point) *)
+PROCEDURE gsk_path_point_copy (point: GskPathPoint) : ADDRESS;
+(* gboolean gsk_path_point_equal(const GskPathPoint *point1, const GskPathPoint *point2) *)
+PROCEDURE gsk_path_point_equal (point1: GskPathPoint; point2: GskPathPoint) : INTEGER;
+(* void gsk_path_point_free(GskPathPoint *point) *)
 PROCEDURE gsk_path_point_free (point: GskPathPoint);
-(* gsk_path_point_get_curvature *)
-PROCEDURE gsk_path_point_get_curvature (point: GskPathPoint; path: ADDRESS; direction: CARDINAL; center: ADDRESS) : [ SHORTREAL ];
-(* gsk_path_point_get_distance *)
-PROCEDURE gsk_path_point_get_distance (point: GskPathPoint; measure: ADDRESS) : [ SHORTREAL ];
-(* gsk_path_point_get_position *)
+(* float gsk_path_point_get_curvature(const GskPathPoint *point, GskPath *path, GskPathDirection direction, graphene_point_t *center) *)
+PROCEDURE gsk_path_point_get_curvature (point: GskPathPoint; path: ADDRESS; direction: CARDINAL; center: ADDRESS) : SHORTREAL;
+(* float gsk_path_point_get_distance(const GskPathPoint *point, GskPathMeasure *measure) *)
+PROCEDURE gsk_path_point_get_distance (point: GskPathPoint; measure: ADDRESS) : SHORTREAL;
+(* void gsk_path_point_get_position(const GskPathPoint *point, GskPath *path, graphene_point_t *position) *)
 PROCEDURE gsk_path_point_get_position (point: GskPathPoint; path: ADDRESS; position: ADDRESS);
-(* gsk_path_point_get_rotation *)
-PROCEDURE gsk_path_point_get_rotation (point: GskPathPoint; path: ADDRESS; direction: CARDINAL) : [ SHORTREAL ];
-(* gsk_path_point_get_tangent *)
+(* float gsk_path_point_get_rotation(const GskPathPoint *point, GskPath *path, GskPathDirection direction) *)
+PROCEDURE gsk_path_point_get_rotation (point: GskPathPoint; path: ADDRESS; direction: CARDINAL) : SHORTREAL;
+(* void gsk_path_point_get_tangent(const GskPathPoint *point, GskPath *path, GskPathDirection direction, graphene_vec2_t *tangent) *)
 PROCEDURE gsk_path_point_get_tangent (point: GskPathPoint; path: ADDRESS; direction: CARDINAL; tangent: ADDRESS);
 
 END GskPathPoint.

+ 18 - 16
src/GskRadialGradientNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRadialGradientNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRadialGradientNode: a radial gradient render node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,21 +20,21 @@ EXPORT UNQUALIFIED
 TYPE
    GskRadialGradientNode = ADDRESS;
 
-(* gsk_radial_gradient_node_new *)
-PROCEDURE gsk_radial_gradient_node_new (bounds: ADDRESS; center: ADDRESS; hradius: SHORTREAL; vradius: SHORTREAL; start: SHORTREAL; end_: SHORTREAL; color_stops: ADDRESS) : [ ADDRESS ];
-(* gsk_radial_gradient_node_get_center *)
-PROCEDURE gsk_radial_gradient_node_get_center (node: GskRadialGradientNode) : [ ADDRESS ];
-(* gsk_radial_gradient_node_get_color_stops *)
+(* GskRenderNode *gsk_radial_gradient_node_new(const graphene_rect_t *bounds, const graphene_point_t *center, float hradius, float vradius, float start, float end, const GskColorStop *color_stops) *)
+PROCEDURE gsk_radial_gradient_node_new (bounds: ADDRESS; center: ADDRESS; hradius: SHORTREAL; vradius: SHORTREAL; start: SHORTREAL; theEnd: SHORTREAL; color_stops: ADDRESS) : ADDRESS;
+(* const graphene_point_t *gsk_radial_gradient_node_get_center(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_center (node: GskRadialGradientNode) : ADDRESS;
+(* const GskColorStop *gsk_radial_gradient_node_get_color_stops(const GskRenderNode *node, gsize *n_stops) *)
 PROCEDURE gsk_radial_gradient_node_get_color_stops (node: GskRadialGradientNode; VAR n_stops: LONGCARD);
-(* gsk_radial_gradient_node_get_end *)
-PROCEDURE gsk_radial_gradient_node_get_end (node: GskRadialGradientNode) : [ SHORTREAL ];
-(* gsk_radial_gradient_node_get_hradius *)
-PROCEDURE gsk_radial_gradient_node_get_hradius (node: GskRadialGradientNode) : [ SHORTREAL ];
-(* gsk_radial_gradient_node_get_n_color_stops *)
-PROCEDURE gsk_radial_gradient_node_get_n_color_stops (node: GskRadialGradientNode) : [ LONGCARD ];
-(* gsk_radial_gradient_node_get_start *)
-PROCEDURE gsk_radial_gradient_node_get_start (node: GskRadialGradientNode) : [ SHORTREAL ];
-(* gsk_radial_gradient_node_get_vradius *)
-PROCEDURE gsk_radial_gradient_node_get_vradius (node: GskRadialGradientNode) : [ SHORTREAL ];
+(* float gsk_radial_gradient_node_get_end(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_end (node: GskRadialGradientNode) : SHORTREAL;
+(* float gsk_radial_gradient_node_get_hradius(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_hradius (node: GskRadialGradientNode) : SHORTREAL;
+(* gsize gsk_radial_gradient_node_get_n_color_stops(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_n_color_stops (node: GskRadialGradientNode) : LONGCARD;
+(* float gsk_radial_gradient_node_get_start(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_start (node: GskRadialGradientNode) : SHORTREAL;
+(* float gsk_radial_gradient_node_get_vradius(const GskRenderNode *node) *)
+PROCEDURE gsk_radial_gradient_node_get_vradius (node: GskRadialGradientNode) : SHORTREAL;
 
 END GskRadialGradientNode.

+ 18 - 16
src/GskRenderNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRenderNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRenderNode: a node in the GSK rendering tree.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -19,23 +21,23 @@ EXPORT UNQUALIFIED
 TYPE
    GskRenderNode = ADDRESS;
 
-(* gsk_render_node_deserialize *)
-PROCEDURE gsk_render_node_deserialize (bytes: ADDRESS; user_data: ADDRESS) : [ ADDRESS ];
-(* gsk_render_node_draw *)
+(* GskRenderNode *gsk_render_node_deserialize(GBytes *bytes, gpointer user_data) *)
+PROCEDURE gsk_render_node_deserialize (bytes: ADDRESS; user_data: ADDRESS) : ADDRESS;
+(* void gsk_render_node_draw(GskRenderNode *node, cairo_t *cr) *)
 PROCEDURE gsk_render_node_draw (node: GskRenderNode; cr: ADDRESS);
-(* gsk_render_node_get_bounds *)
+(* void gsk_render_node_get_bounds(GskRenderNode *node, graphene_rect_t *bounds) *)
 PROCEDURE gsk_render_node_get_bounds (node: GskRenderNode; bounds: ADDRESS);
-(* gsk_render_node_get_node_type *)
-PROCEDURE gsk_render_node_get_node_type (node: GskRenderNode) : [ CARDINAL ];
-(* gsk_render_node_get_opaque_rect *)
-PROCEDURE gsk_render_node_get_opaque_rect (self: GskRenderNode; out_opaque: ADDRESS) : [ INTEGER ];
-(* gsk_render_node_ref *)
-PROCEDURE gsk_render_node_ref (node: GskRenderNode) : [ ADDRESS ];
-(* gsk_render_node_serialize *)
-PROCEDURE gsk_render_node_serialize (node: GskRenderNode) : [ ADDRESS ];
-(* gsk_render_node_unref *)
+(* GskRenderNodeType gsk_render_node_get_node_type(GskRenderNode *node) *)
+PROCEDURE gsk_render_node_get_node_type (node: GskRenderNode) : CARDINAL;
+(* gboolean gsk_render_node_get_opaque_rect(GskRenderNode *self, graphene_rect_t *out_opaque) *)
+PROCEDURE gsk_render_node_get_opaque_rect (self: GskRenderNode; out_opaque: ADDRESS) : INTEGER;
+(* GskRenderNode *gsk_render_node_ref(GskRenderNode *node) *)
+PROCEDURE gsk_render_node_ref (node: GskRenderNode) : ADDRESS;
+(* GBytes *gsk_render_node_serialize(GskRenderNode *node) *)
+PROCEDURE gsk_render_node_serialize (node: GskRenderNode) : ADDRESS;
+(* void gsk_render_node_unref(GskRenderNode *node) *)
 PROCEDURE gsk_render_node_unref (node: GskRenderNode);
-(* gsk_render_node_write_to_file *)
-PROCEDURE gsk_render_node_write_to_file (node: GskRenderNode; filename: ARRAY OF CHAR) : [ INTEGER ];
+(* gboolean gsk_render_node_write_to_file(GskRenderNode *node, const char *filename) *)
+PROCEDURE gsk_render_node_write_to_file (node: GskRenderNode; filename: ARRAY OF CHAR) : INTEGER;
 
 END GskRenderNode.

+ 17 - 15
src/GskRenderer.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRenderer ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRenderer: renders a GskRenderNode tree to a surface.  Mapped onto <gsk/gskrenderer.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -18,21 +20,21 @@ EXPORT UNQUALIFIED
 TYPE
    GskRenderer = ADDRESS;
 
-(* gsk_renderer_new_for_surface *)
-PROCEDURE gsk_renderer_new_for_surface (surface: ADDRESS) : [ ADDRESS ];
-(* gsk_renderer_get_surface *)
-PROCEDURE gsk_renderer_get_surface (renderer: GskRenderer) : [ ADDRESS ];
-(* gsk_renderer_is_realized *)
-PROCEDURE gsk_renderer_is_realized (renderer: GskRenderer) : [ INTEGER ];
-(* gsk_renderer_realize *)
-PROCEDURE gsk_renderer_realize (renderer: GskRenderer; surface: ADDRESS) : [ INTEGER ];
-(* gsk_renderer_realize_for_display *)
-PROCEDURE gsk_renderer_realize_for_display (renderer: GskRenderer; display: ADDRESS) : [ INTEGER ];
-(* gsk_renderer_render *)
+(* GskRenderer *gsk_renderer_new_for_surface(GdkSurface *surface) *)
+PROCEDURE gsk_renderer_new_for_surface (surface: ADDRESS) : ADDRESS;
+(* GdkSurface *gsk_renderer_get_surface(GskRenderer *renderer) *)
+PROCEDURE gsk_renderer_get_surface (renderer: GskRenderer) : ADDRESS;
+(* gboolean gsk_renderer_is_realized(GskRenderer *renderer) *)
+PROCEDURE gsk_renderer_is_realized (renderer: GskRenderer) : INTEGER;
+(* gboolean gsk_renderer_realize(GskRenderer *renderer, GdkSurface *surface) *)
+PROCEDURE gsk_renderer_realize (renderer: GskRenderer; surface: ADDRESS) : INTEGER;
+(* gboolean gsk_renderer_realize_for_display(GskRenderer *renderer, GdkDisplay *display) *)
+PROCEDURE gsk_renderer_realize_for_display (renderer: GskRenderer; display: ADDRESS) : INTEGER;
+(* void gsk_renderer_render(GskRenderer *renderer, GskRenderNode *root, const cairo_region_t *region) *)
 PROCEDURE gsk_renderer_render (renderer: GskRenderer; root: ADDRESS; region: ADDRESS);
-(* gsk_renderer_render_texture *)
-PROCEDURE gsk_renderer_render_texture (renderer: GskRenderer; root: ADDRESS; viewport: ADDRESS) : [ ADDRESS ];
-(* gsk_renderer_unrealize *)
+(* GdkTexture *gsk_renderer_render_texture(GskRenderer *renderer, GskRenderNode *root, const graphene_rect_t *viewport) *)
+PROCEDURE gsk_renderer_render_texture (renderer: GskRenderer; root: ADDRESS; viewport: ADDRESS) : ADDRESS;
+(* void gsk_renderer_unrealize(GskRenderer *renderer) *)
 PROCEDURE gsk_renderer_unrealize (renderer: GskRenderer);
 
 END GskRenderer.

+ 9 - 7
src/GskRepeatNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRepeatNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRepeatNode: a render node that repeats a child.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +15,11 @@ EXPORT UNQUALIFIED
 TYPE
    GskRepeatNode = ADDRESS;
 
-(* gsk_repeat_node_new *)
-PROCEDURE gsk_repeat_node_new (bounds: ADDRESS; child: ADDRESS; child_bounds: ADDRESS) : [ ADDRESS ];
-(* gsk_repeat_node_get_child *)
-PROCEDURE gsk_repeat_node_get_child (node: GskRepeatNode) : [ ADDRESS ];
-(* gsk_repeat_node_get_child_bounds *)
-PROCEDURE gsk_repeat_node_get_child_bounds (node: GskRepeatNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_repeat_node_new(const graphene_rect_t *bounds, GskRenderNode *child, const graphene_rect_t *child_bounds) *)
+PROCEDURE gsk_repeat_node_new (bounds: ADDRESS; child: ADDRESS; child_bounds: ADDRESS) : ADDRESS;
+(* GskRenderNode *gsk_repeat_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_repeat_node_get_child (node: GskRepeatNode) : ADDRESS;
+(* const graphene_rect_t *gsk_repeat_node_get_child_bounds(const GskRenderNode *node) *)
+PROCEDURE gsk_repeat_node_get_child_bounds (node: GskRepeatNode) : ADDRESS;
 
 END GskRepeatNode.

+ 5 - 3
src/GskRepeatingLinearGradientNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRepeatingLinearGradientNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRepeatingLinearGradientNode: a repeating linear gradient render node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +13,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskRepeatingLinearGradientNode = ADDRESS;
 
-(* gsk_repeating_linear_gradient_node_new *)
-PROCEDURE gsk_repeating_linear_gradient_node_new (bounds: ADDRESS; start: ADDRESS; end_: ADDRESS; color_stops: ADDRESS) : [ ADDRESS ];
+(* GskRenderNode *gsk_repeating_linear_gradient_node_new(const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops) *)
+PROCEDURE gsk_repeating_linear_gradient_node_new (bounds: ADDRESS; start: ADDRESS; theEnd: ADDRESS; color_stops: ADDRESS) : ADDRESS;
 
 END GskRepeatingLinearGradientNode.

+ 5 - 3
src/GskRepeatingRadialGradientNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRepeatingRadialGradientNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRepeatingRadialGradientNode: a repeating radial gradient render node.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -11,7 +13,7 @@ EXPORT UNQUALIFIED
 TYPE
    GskRepeatingRadialGradientNode = ADDRESS;
 
-(* gsk_repeating_radial_gradient_node_new *)
-PROCEDURE gsk_repeating_radial_gradient_node_new (bounds: ADDRESS; center: ADDRESS; hradius: SHORTREAL; vradius: SHORTREAL; start: SHORTREAL; end_: SHORTREAL; color_stops: ADDRESS) : [ ADDRESS ];
+(* GskRenderNode *gsk_repeating_radial_gradient_node_new(const graphene_rect_t *bounds, const graphene_point_t *center, float hradius, float vradius, float start, float end, const GskColorStop *color_stops) *)
+PROCEDURE gsk_repeating_radial_gradient_node_new (bounds: ADDRESS; center: ADDRESS; hradius: SHORTREAL; vradius: SHORTREAL; start: SHORTREAL; theEnd: SHORTREAL; color_stops: ADDRESS) : ADDRESS;
 
 END GskRepeatingRadialGradientNode.

+ 9 - 7
src/GskRoundedClipNode.def

@@ -1,6 +1,8 @@
 DEFINITION MODULE FOR "C" GskRoundedClipNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRoundedClipNode: a render node clipping to a rounded rectangle.  Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +15,11 @@ EXPORT UNQUALIFIED
 TYPE
    GskRoundedClipNode = ADDRESS;
 
-(* gsk_rounded_clip_node_new *)
-PROCEDURE gsk_rounded_clip_node_new (child: ADDRESS; clip: ADDRESS) : [ ADDRESS ];
-(* gsk_rounded_clip_node_get_child *)
-PROCEDURE gsk_rounded_clip_node_get_child (node: GskRoundedClipNode) : [ ADDRESS ];
-(* gsk_rounded_clip_node_get_clip *)
-PROCEDURE gsk_rounded_clip_node_get_clip (node: GskRoundedClipNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_rounded_clip_node_new(GskRenderNode *child, const GskRoundedRect *clip) *)
+PROCEDURE gsk_rounded_clip_node_new (child: ADDRESS; clip: ADDRESS) : ADDRESS;
+(* GskRenderNode *gsk_rounded_clip_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_rounded_clip_node_get_child (node: GskRoundedClipNode) : ADDRESS;
+(* const GskRoundedRect *gsk_rounded_clip_node_get_clip(const GskRenderNode *node) *)
+PROCEDURE gsk_rounded_clip_node_get_clip (node: GskRoundedClipNode) : ADDRESS;
 
 END GskRoundedClipNode.

+ 33 - 21
src/GskRoundedRect.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskRoundedRect ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskRoundedRect: a rounded rectangle with four corner sizes.
+   Mapped onto <gsk/gskroundedrect.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -20,25 +23,34 @@ EXPORT UNQUALIFIED
 TYPE
    GskRoundedRect = ADDRESS;
 
-(* gsk_rounded_rect_contains_point *)
-PROCEDURE gsk_rounded_rect_contains_point (self: GskRoundedRect; point: ADDRESS) : [ INTEGER ];
-(* gsk_rounded_rect_contains_rect *)
-PROCEDURE gsk_rounded_rect_contains_rect (self: GskRoundedRect; rect: ADDRESS) : [ INTEGER ];
-(* gsk_rounded_rect_init *)
-PROCEDURE gsk_rounded_rect_init (self: GskRoundedRect; bounds: ADDRESS; top_left: ADDRESS; top_right: ADDRESS; bottom_right: ADDRESS; bottom_left: ADDRESS) : [ ADDRESS ];
-(* gsk_rounded_rect_init_copy *)
-PROCEDURE gsk_rounded_rect_init_copy (self: GskRoundedRect; src: GskRoundedRect) : [ ADDRESS ];
-(* gsk_rounded_rect_init_from_rect *)
-PROCEDURE gsk_rounded_rect_init_from_rect (self: GskRoundedRect; bounds: ADDRESS; radius: SHORTREAL) : [ ADDRESS ];
-(* gsk_rounded_rect_intersects_rect *)
-PROCEDURE gsk_rounded_rect_intersects_rect (self: GskRoundedRect; rect: ADDRESS) : [ INTEGER ];
-(* gsk_rounded_rect_is_rectilinear *)
-PROCEDURE gsk_rounded_rect_is_rectilinear (self: GskRoundedRect) : [ INTEGER ];
-(* gsk_rounded_rect_normalize *)
-PROCEDURE gsk_rounded_rect_normalize (self: GskRoundedRect) : [ ADDRESS ];
-(* gsk_rounded_rect_offset *)
-PROCEDURE gsk_rounded_rect_offset (self: GskRoundedRect; dx: SHORTREAL; dy: SHORTREAL) : [ ADDRESS ];
-(* gsk_rounded_rect_shrink *)
-PROCEDURE gsk_rounded_rect_shrink (self: GskRoundedRect; top: SHORTREAL; right: SHORTREAL; bottom: SHORTREAL; left: SHORTREAL) : [ ADDRESS ];
+(* gboolean gsk_rounded_rect_contains_point(const GskRoundedRect *self, const graphene_point_t *point) *)
+PROCEDURE gsk_rounded_rect_contains_point (self: GskRoundedRect; point: ADDRESS) : INTEGER;
+
+(* gboolean gsk_rounded_rect_contains_rect(const GskRoundedRect *self, const graphene_rect_t *rect) *)
+PROCEDURE gsk_rounded_rect_contains_rect (self: GskRoundedRect; rect: ADDRESS) : INTEGER;
+
+(* GskRoundedRect *gsk_rounded_rect_init(GskRoundedRect *self, const graphene_rect_t *bounds, const graphene_size_t *top_left, const graphene_size_t *top_right, const graphene_size_t *bottom_right, const graphene_size_t *bottom_left) *)
+PROCEDURE gsk_rounded_rect_init (self: GskRoundedRect; bounds: ADDRESS; top_left: ADDRESS; top_right: ADDRESS; bottom_right: ADDRESS; bottom_left: ADDRESS) : ADDRESS;
+
+(* GskRoundedRect *gsk_rounded_rect_init_copy(GskRoundedRect *self, const GskRoundedRect *src) *)
+PROCEDURE gsk_rounded_rect_init_copy (self: GskRoundedRect; src: GskRoundedRect) : ADDRESS;
+
+(* GskRoundedRect *gsk_rounded_rect_init_from_rect(GskRoundedRect *self, const graphene_rect_t *bounds, float radius) *)
+PROCEDURE gsk_rounded_rect_init_from_rect (self: GskRoundedRect; bounds: ADDRESS; radius: SHORTREAL) : ADDRESS;
+
+(* gboolean gsk_rounded_rect_intersects_rect(const GskRoundedRect *self, const graphene_rect_t *rect) *)
+PROCEDURE gsk_rounded_rect_intersects_rect (self: GskRoundedRect; rect: ADDRESS) : INTEGER;
+
+(* gboolean gsk_rounded_rect_is_rectilinear(const GskRoundedRect *self) *)
+PROCEDURE gsk_rounded_rect_is_rectilinear (self: GskRoundedRect) : INTEGER;
+
+(* GskRoundedRect *gsk_rounded_rect_normalize(GskRoundedRect *self) *)
+PROCEDURE gsk_rounded_rect_normalize (self: GskRoundedRect) : ADDRESS;
+
+(* GskRoundedRect *gsk_rounded_rect_offset(GskRoundedRect *self, float dx, float dy) *)
+PROCEDURE gsk_rounded_rect_offset (self: GskRoundedRect; dx: SHORTREAL; dy: SHORTREAL) : ADDRESS;
+
+(* GskRoundedRect *gsk_rounded_rect_shrink(GskRoundedRect *self, float top, float right, float bottom, float left) *)
+PROCEDURE gsk_rounded_rect_shrink (self: GskRoundedRect; top: SHORTREAL; right: SHORTREAL; bottom: SHORTREAL; left: SHORTREAL) : ADDRESS;
 
 END GskRoundedRect.

+ 31 - 17
src/GskShaderArgsBuilder.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskShaderArgsBuilder ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskShaderArgsBuilder: builder for GskGLShader uniform args.
+   Mapped onto <gsk/gskglshader.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -22,29 +25,40 @@ EXPORT UNQUALIFIED
 TYPE
    GskShaderArgsBuilder = ADDRESS;
 
-(* gsk_shader_args_builder_new *)
-PROCEDURE gsk_shader_args_builder_new (shader: ADDRESS; initial_values: ADDRESS) : [ ADDRESS ];
-(* gsk_shader_args_builder_free_to_args *)
-PROCEDURE gsk_shader_args_builder_free_to_args (builder: GskShaderArgsBuilder) : [ ADDRESS ];
-(* gsk_shader_args_builder_ref *)
-PROCEDURE gsk_shader_args_builder_ref (builder: GskShaderArgsBuilder) : [ ADDRESS ];
-(* gsk_shader_args_builder_set_bool *)
+(* GskShaderArgsBuilder *gsk_shader_args_builder_new(GskGLShader *shader, GBytes *initial_values) *)
+PROCEDURE gsk_shader_args_builder_new (shader: ADDRESS; initial_values: ADDRESS) : ADDRESS;
+
+(* GBytes *gsk_shader_args_builder_free_to_args(GskShaderArgsBuilder *builder) *)
+PROCEDURE gsk_shader_args_builder_free_to_args (builder: GskShaderArgsBuilder) : ADDRESS;
+
+(* GskShaderArgsBuilder *gsk_shader_args_builder_ref(GskShaderArgsBuilder *builder) *)
+PROCEDURE gsk_shader_args_builder_ref (builder: GskShaderArgsBuilder) : ADDRESS;
+
+(* void gsk_shader_args_builder_set_bool(GskShaderArgsBuilder *builder, int idx, gboolean value) *)
 PROCEDURE gsk_shader_args_builder_set_bool (builder: GskShaderArgsBuilder; idx: INTEGER; value: INTEGER);
-(* gsk_shader_args_builder_set_float *)
+
+(* void gsk_shader_args_builder_set_float(GskShaderArgsBuilder *builder, int idx, float value) *)
 PROCEDURE gsk_shader_args_builder_set_float (builder: GskShaderArgsBuilder; idx: INTEGER; value: SHORTREAL);
-(* gsk_shader_args_builder_set_int *)
+
+(* void gsk_shader_args_builder_set_int(GskShaderArgsBuilder *builder, int idx, gint32 value) *)
 PROCEDURE gsk_shader_args_builder_set_int (builder: GskShaderArgsBuilder; idx: INTEGER; value: INTEGER);
-(* gsk_shader_args_builder_set_uint *)
+
+(* void gsk_shader_args_builder_set_uint(GskShaderArgsBuilder *builder, int idx, guint32 value) *)
 PROCEDURE gsk_shader_args_builder_set_uint (builder: GskShaderArgsBuilder; idx: INTEGER; value: CARDINAL);
-(* gsk_shader_args_builder_set_vec2 *)
+
+(* void gsk_shader_args_builder_set_vec2(GskShaderArgsBuilder *builder, int idx, const graphene_vec2_t *value) *)
 PROCEDURE gsk_shader_args_builder_set_vec2 (builder: GskShaderArgsBuilder; idx: INTEGER; value: ADDRESS);
-(* gsk_shader_args_builder_set_vec3 *)
+
+(* void gsk_shader_args_builder_set_vec3(GskShaderArgsBuilder *builder, int idx, const graphene_vec3_t *value) *)
 PROCEDURE gsk_shader_args_builder_set_vec3 (builder: GskShaderArgsBuilder; idx: INTEGER; value: ADDRESS);
-(* gsk_shader_args_builder_set_vec4 *)
+
+(* void gsk_shader_args_builder_set_vec4(GskShaderArgsBuilder *builder, int idx, const graphene_vec4_t *value) *)
 PROCEDURE gsk_shader_args_builder_set_vec4 (builder: GskShaderArgsBuilder; idx: INTEGER; value: ADDRESS);
-(* gsk_shader_args_builder_to_args *)
-PROCEDURE gsk_shader_args_builder_to_args (builder: GskShaderArgsBuilder) : [ ADDRESS ];
-(* gsk_shader_args_builder_unref *)
+
+(* GBytes *gsk_shader_args_builder_to_args(GskShaderArgsBuilder *builder) *)
+PROCEDURE gsk_shader_args_builder_to_args (builder: GskShaderArgsBuilder) : ADDRESS;
+
+(* void gsk_shader_args_builder_unref(GskShaderArgsBuilder *builder) *)
 PROCEDURE gsk_shader_args_builder_unref (builder: GskShaderArgsBuilder);
 
 END GskShaderArgsBuilder.

+ 15 - 9
src/GskShadowNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskShadowNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskShadowNode: a render node that draws drop shadows.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskShadowNode = ADDRESS;
 
-(* gsk_shadow_node_new *)
-PROCEDURE gsk_shadow_node_new (child: ADDRESS; shadows: ADDRESS) : [ ADDRESS ];
-(* gsk_shadow_node_get_child *)
-PROCEDURE gsk_shadow_node_get_child (node: GskShadowNode) : [ ADDRESS ];
-(* gsk_shadow_node_get_n_shadows *)
-PROCEDURE gsk_shadow_node_get_n_shadows (node: GskShadowNode) : [ LONGCARD ];
-(* gsk_shadow_node_get_shadow *)
-PROCEDURE gsk_shadow_node_get_shadow (node: GskShadowNode; i: LONGCARD) : [ ADDRESS ];
+(* GskRenderNode *gsk_shadow_node_new(GskRenderNode *child, const GskShadow *shadows) *)
+PROCEDURE gsk_shadow_node_new (child: ADDRESS; shadows: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_shadow_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_shadow_node_get_child (node: GskShadowNode) : ADDRESS;
+
+(* gsize gsk_shadow_node_get_n_shadows(const GskRenderNode *node) *)
+PROCEDURE gsk_shadow_node_get_n_shadows (node: GskShadowNode) : LONGCARD;
+
+(* const GskShadow *gsk_shadow_node_get_shadow(const GskRenderNode *node, gsize i) *)
+PROCEDURE gsk_shadow_node_get_shadow (node: GskShadowNode; i: LONGCARD) : ADDRESS;
 
 END GskShadowNode.

+ 45 - 26
src/GskStroke.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskStroke ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskStroke: a stroking style: line width, caps, joins, dash.
+   Mapped onto <gsk/gskstroke.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -27,39 +30,55 @@ EXPORT UNQUALIFIED
 TYPE
    GskStroke = ADDRESS;
 
-(* gsk_stroke_new *)
-PROCEDURE gsk_stroke_new (line_width: SHORTREAL) : [ ADDRESS ];
-(* gsk_stroke_copy *)
-PROCEDURE gsk_stroke_copy (other: GskStroke) : [ ADDRESS ];
-(* gsk_stroke_free *)
+(* GskStroke *gsk_stroke_new(float line_width) *)
+PROCEDURE gsk_stroke_new (line_width: SHORTREAL) : ADDRESS;
+
+(* GskStroke *gsk_stroke_copy(const GskStroke *other) *)
+PROCEDURE gsk_stroke_copy (other: GskStroke) : ADDRESS;
+
+(* void gsk_stroke_free(GskStroke *self) *)
 PROCEDURE gsk_stroke_free (self: GskStroke);
-(* gsk_stroke_get_dash *)
+
+(* const float *gsk_stroke_get_dash(const GskStroke *self, gsize *n_dash) *)
 PROCEDURE gsk_stroke_get_dash (self: GskStroke; VAR n_dash: LONGCARD);
-(* gsk_stroke_get_dash_offset *)
-PROCEDURE gsk_stroke_get_dash_offset (self: GskStroke) : [ SHORTREAL ];
-(* gsk_stroke_get_line_cap *)
-PROCEDURE gsk_stroke_get_line_cap (self: GskStroke) : [ CARDINAL ];
-(* gsk_stroke_get_line_join *)
-PROCEDURE gsk_stroke_get_line_join (self: GskStroke) : [ CARDINAL ];
-(* gsk_stroke_get_line_width *)
-PROCEDURE gsk_stroke_get_line_width (self: GskStroke) : [ SHORTREAL ];
-(* gsk_stroke_get_miter_limit *)
-PROCEDURE gsk_stroke_get_miter_limit (self: GskStroke) : [ SHORTREAL ];
-(* gsk_stroke_set_dash *)
+
+(* float gsk_stroke_get_dash_offset(const GskStroke *self) *)
+PROCEDURE gsk_stroke_get_dash_offset (self: GskStroke) : SHORTREAL;
+
+(* GskLineCap gsk_stroke_get_line_cap(const GskStroke *self) *)
+PROCEDURE gsk_stroke_get_line_cap (self: GskStroke) : CARDINAL;
+
+(* GskLineJoin gsk_stroke_get_line_join(const GskStroke *self) *)
+PROCEDURE gsk_stroke_get_line_join (self: GskStroke) : CARDINAL;
+
+(* float gsk_stroke_get_line_width(const GskStroke *self) *)
+PROCEDURE gsk_stroke_get_line_width (self: GskStroke) : SHORTREAL;
+
+(* float gsk_stroke_get_miter_limit(const GskStroke *self) *)
+PROCEDURE gsk_stroke_get_miter_limit (self: GskStroke) : SHORTREAL;
+
+(* void gsk_stroke_set_dash(GskStroke *self, gsize n_dash) *)
 PROCEDURE gsk_stroke_set_dash (self: GskStroke; n_dash: LONGCARD);
-(* gsk_stroke_set_dash_offset *)
+
+(* void gsk_stroke_set_dash_offset(GskStroke *self, float offset) *)
 PROCEDURE gsk_stroke_set_dash_offset (self: GskStroke; offset: SHORTREAL);
-(* gsk_stroke_set_line_cap *)
+
+(* void gsk_stroke_set_line_cap(GskStroke *self, GskLineCap line_cap) *)
 PROCEDURE gsk_stroke_set_line_cap (self: GskStroke; line_cap: CARDINAL);
-(* gsk_stroke_set_line_join *)
+
+(* void gsk_stroke_set_line_join(GskStroke *self, GskLineJoin line_join) *)
 PROCEDURE gsk_stroke_set_line_join (self: GskStroke; line_join: CARDINAL);
-(* gsk_stroke_set_line_width *)
+
+(* void gsk_stroke_set_line_width(GskStroke *self, float line_width) *)
 PROCEDURE gsk_stroke_set_line_width (self: GskStroke; line_width: SHORTREAL);
-(* gsk_stroke_set_miter_limit *)
+
+(* void gsk_stroke_set_miter_limit(GskStroke *self, float limit) *)
 PROCEDURE gsk_stroke_set_miter_limit (self: GskStroke; limit: SHORTREAL);
-(* gsk_stroke_to_cairo *)
+
+(* void gsk_stroke_to_cairo(const GskStroke *self, cairo_t *cr) *)
 PROCEDURE gsk_stroke_to_cairo (self: GskStroke; cr: ADDRESS);
-(* gsk_stroke_equal *)
-PROCEDURE gsk_stroke_equal (stroke1: ADDRESS; stroke2: ADDRESS) : [ INTEGER ];
+
+(* gboolean gsk_stroke_equal(gconstpointer stroke1, gconstpointer stroke2) *)
+PROCEDURE gsk_stroke_equal (stroke1: ADDRESS; stroke2: ADDRESS) : INTEGER;
 
 END GskStroke.

+ 15 - 9
src/GskStrokeNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskStrokeNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskStrokeNode: a render node that strokes a path.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -14,13 +17,16 @@ EXPORT UNQUALIFIED
 TYPE
    GskStrokeNode = ADDRESS;
 
-(* gsk_stroke_node_new *)
-PROCEDURE gsk_stroke_node_new (child: ADDRESS; path: ADDRESS; stroke: ADDRESS) : [ ADDRESS ];
-(* gsk_stroke_node_get_child *)
-PROCEDURE gsk_stroke_node_get_child (node: GskStrokeNode) : [ ADDRESS ];
-(* gsk_stroke_node_get_path *)
-PROCEDURE gsk_stroke_node_get_path (node: GskStrokeNode) : [ ADDRESS ];
-(* gsk_stroke_node_get_stroke *)
-PROCEDURE gsk_stroke_node_get_stroke (node: GskStrokeNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_stroke_node_new(GskRenderNode *child, GskPath *path, const GskStroke *stroke) *)
+PROCEDURE gsk_stroke_node_new (child: ADDRESS; path: ADDRESS; stroke: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_stroke_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_stroke_node_get_child (node: GskStrokeNode) : ADDRESS;
+
+(* GskPath *gsk_stroke_node_get_path(const GskRenderNode *node) *)
+PROCEDURE gsk_stroke_node_get_path (node: GskStrokeNode) : ADDRESS;
+
+(* const GskStroke *gsk_stroke_node_get_stroke(const GskRenderNode *node) *)
+PROCEDURE gsk_stroke_node_get_stroke (node: GskStrokeNode) : ADDRESS;
 
 END GskStrokeNode.

+ 12 - 7
src/GskSubsurfaceNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskSubsurfaceNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskSubsurfaceNode: a render node that draws a subsurface.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskSubsurfaceNode = ADDRESS;
 
-(* gsk_subsurface_node_new *)
-PROCEDURE gsk_subsurface_node_new (child: ADDRESS; subsurface: ADDRESS) : [ ADDRESS ];
-(* gsk_subsurface_node_get_subsurface *)
-PROCEDURE gsk_subsurface_node_get_subsurface (node: ADDRESS) : [ ADDRESS ];
-(* gsk_subsurface_node_get_child *)
-PROCEDURE gsk_subsurface_node_get_child (node: GskSubsurfaceNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_subsurface_node_new(GskRenderNode *child, gpointer subsurface) *)
+PROCEDURE gsk_subsurface_node_new (child: ADDRESS; subsurface: ADDRESS) : ADDRESS;
+
+(* gpointer gsk_subsurface_node_get_subsurface(const GskRenderNode *node) *)
+PROCEDURE gsk_subsurface_node_get_subsurface (node: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_subsurface_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_subsurface_node_get_child (node: GskSubsurfaceNode) : ADDRESS;
 
 END GskSubsurfaceNode.

+ 23 - 14
src/GskTextNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskTextNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskTextNode: a render node that draws a run of glyphs.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -17,19 +20,25 @@ EXPORT UNQUALIFIED
 TYPE
    GskTextNode = ADDRESS;
 
-(* gsk_text_node_new *)
-PROCEDURE gsk_text_node_new (font: ADDRESS; glyphs: ADDRESS; color: ADDRESS; offset: ADDRESS) : [ ADDRESS ];
-(* gsk_text_node_get_color *)
-PROCEDURE gsk_text_node_get_color (node: GskTextNode) : [ ADDRESS ];
-(* gsk_text_node_get_font *)
-PROCEDURE gsk_text_node_get_font (node: GskTextNode) : [ ADDRESS ];
-(* gsk_text_node_get_glyphs *)
+(* GskRenderNode *gsk_text_node_new(PangoFont *font, PangoGlyphString *glyphs, const GdkRGBA *color, const graphene_point_t *offset) *)
+PROCEDURE gsk_text_node_new (font: ADDRESS; glyphs: ADDRESS; color: ADDRESS; offset: ADDRESS) : ADDRESS;
+
+(* const GdkRGBA *gsk_text_node_get_color(const GskRenderNode *node) *)
+PROCEDURE gsk_text_node_get_color (node: GskTextNode) : ADDRESS;
+
+(* PangoFont *gsk_text_node_get_font(const GskRenderNode *node) *)
+PROCEDURE gsk_text_node_get_font (node: GskTextNode) : ADDRESS;
+
+(* const PangoGlyphInfo *gsk_text_node_get_glyphs(const GskRenderNode *node, guint *n_glyphs) *)
 PROCEDURE gsk_text_node_get_glyphs (node: GskTextNode; VAR n_glyphs: CARDINAL);
-(* gsk_text_node_get_num_glyphs *)
-PROCEDURE gsk_text_node_get_num_glyphs (node: GskTextNode) : [ CARDINAL ];
-(* gsk_text_node_get_offset *)
-PROCEDURE gsk_text_node_get_offset (node: GskTextNode) : [ ADDRESS ];
-(* gsk_text_node_has_color_glyphs *)
-PROCEDURE gsk_text_node_has_color_glyphs (node: GskTextNode) : [ INTEGER ];
+
+(* guint gsk_text_node_get_num_glyphs(const GskRenderNode *node) *)
+PROCEDURE gsk_text_node_get_num_glyphs (node: GskTextNode) : CARDINAL;
+
+(* const graphene_point_t *gsk_text_node_get_offset(const GskRenderNode *node) *)
+PROCEDURE gsk_text_node_get_offset (node: GskTextNode) : ADDRESS;
+
+(* gboolean gsk_text_node_has_color_glyphs(const GskRenderNode *node) *)
+PROCEDURE gsk_text_node_has_color_glyphs (node: GskTextNode) : INTEGER;
 
 END GskTextNode.

+ 9 - 5
src/GskTextureNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskTextureNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskTextureNode: a render node that draws a texture.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -12,9 +15,10 @@ EXPORT UNQUALIFIED
 TYPE
    GskTextureNode = ADDRESS;
 
-(* gsk_texture_node_new *)
-PROCEDURE gsk_texture_node_new (texture: ADDRESS; bounds: ADDRESS) : [ ADDRESS ];
-(* gsk_texture_node_get_texture *)
-PROCEDURE gsk_texture_node_get_texture (node: GskTextureNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_texture_node_new(GdkTexture *texture, const graphene_rect_t *bounds) *)
+PROCEDURE gsk_texture_node_new (texture: ADDRESS; bounds: ADDRESS) : ADDRESS;
+
+(* GdkTexture *gsk_texture_node_get_texture(const GskRenderNode *node) *)
+PROCEDURE gsk_texture_node_get_texture (node: GskTextureNode) : ADDRESS;
 
 END GskTextureNode.

+ 12 - 7
src/GskTextureScaleNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskTextureScaleNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskTextureScaleNode: a render node that scales a texture.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskTextureScaleNode = ADDRESS;
 
-(* gsk_texture_scale_node_new *)
-PROCEDURE gsk_texture_scale_node_new (texture: ADDRESS; bounds: ADDRESS; filter: CARDINAL) : [ ADDRESS ];
-(* gsk_texture_scale_node_get_filter *)
-PROCEDURE gsk_texture_scale_node_get_filter (node: GskTextureScaleNode) : [ CARDINAL ];
-(* gsk_texture_scale_node_get_texture *)
-PROCEDURE gsk_texture_scale_node_get_texture (node: GskTextureScaleNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_texture_scale_node_new(GdkTexture *texture, const graphene_rect_t *bounds, GskScalingFilter filter) *)
+PROCEDURE gsk_texture_scale_node_new (texture: ADDRESS; bounds: ADDRESS; filter: CARDINAL) : ADDRESS;
+
+(* GskScalingFilter gsk_texture_scale_node_get_filter(const GskRenderNode *node) *)
+PROCEDURE gsk_texture_scale_node_get_filter (node: GskTextureScaleNode) : CARDINAL;
+
+(* GdkTexture *gsk_texture_scale_node_get_texture(const GskRenderNode *node) *)
+PROCEDURE gsk_texture_scale_node_get_texture (node: GskTextureScaleNode) : ADDRESS;
 
 END GskTextureScaleNode.

+ 72 - 44
src/GskTransform.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskTransform ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskTransform: an immutable 2D/3D transformation matrix.
+   Mapped onto <gsk/gsktransform.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -36,57 +39,82 @@ EXPORT UNQUALIFIED
 TYPE
    GskTransform = ADDRESS;
 
-(* gsk_transform_new *)
-PROCEDURE gsk_transform_new () : [ ADDRESS ];
-(* gsk_transform_equal *)
-PROCEDURE gsk_transform_equal (first: GskTransform; second: GskTransform) : [ INTEGER ];
-(* gsk_transform_get_category *)
-PROCEDURE gsk_transform_get_category (self: GskTransform) : [ CARDINAL ];
-(* gsk_transform_invert *)
-PROCEDURE gsk_transform_invert (self: GskTransform) : [ ADDRESS ];
-(* gsk_transform_matrix *)
-PROCEDURE gsk_transform_matrix (next: GskTransform; matrix: ADDRESS) : [ ADDRESS ];
-(* gsk_transform_perspective *)
-PROCEDURE gsk_transform_perspective (next: GskTransform; depth: SHORTREAL) : [ ADDRESS ];
-(* gsk_transform_print *)
+(* GskTransform *gsk_transform_new(void) *)
+PROCEDURE gsk_transform_new () : ADDRESS;
+
+(* gboolean gsk_transform_equal(GskTransform *first, GskTransform *second) *)
+PROCEDURE gsk_transform_equal (first: GskTransform; second: GskTransform) : INTEGER;
+
+(* GskTransformCategory gsk_transform_get_category(GskTransform *self) *)
+PROCEDURE gsk_transform_get_category (self: GskTransform) : CARDINAL;
+
+(* GskTransform *gsk_transform_invert(GskTransform *self) *)
+PROCEDURE gsk_transform_invert (self: GskTransform) : ADDRESS;
+
+(* GskTransform *gsk_transform_matrix(GskTransform *next, const graphene_matrix_t *matrix) *)
+PROCEDURE gsk_transform_matrix (next: GskTransform; matrix: ADDRESS) : ADDRESS;
+
+(* GskTransform *gsk_transform_perspective(GskTransform *next, float depth) *)
+PROCEDURE gsk_transform_perspective (next: GskTransform; depth: SHORTREAL) : ADDRESS;
+
+(* void gsk_transform_print(GskTransform *self, GString *string) *)
 PROCEDURE gsk_transform_print (self: GskTransform; string: ADDRESS);
-(* gsk_transform_ref *)
-PROCEDURE gsk_transform_ref (self: GskTransform) : [ ADDRESS ];
-(* gsk_transform_rotate *)
-PROCEDURE gsk_transform_rotate (next: GskTransform; angle: SHORTREAL) : [ ADDRESS ];
-(* gsk_transform_rotate_3d *)
-PROCEDURE gsk_transform_rotate_3d (next: GskTransform; angle: SHORTREAL; axis: ADDRESS) : [ ADDRESS ];
-(* gsk_transform_scale *)
-PROCEDURE gsk_transform_scale (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL) : [ ADDRESS ];
-(* gsk_transform_scale_3d *)
-PROCEDURE gsk_transform_scale_3d (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL; factor_z: SHORTREAL) : [ ADDRESS ];
-(* gsk_transform_skew *)
-PROCEDURE gsk_transform_skew (next: GskTransform; skew_x: SHORTREAL; skew_y: SHORTREAL) : [ ADDRESS ];
-(* gsk_transform_to_2d *)
+
+(* GskTransform *gsk_transform_ref(GskTransform *self) *)
+PROCEDURE gsk_transform_ref (self: GskTransform) : ADDRESS;
+
+(* GskTransform *gsk_transform_rotate(GskTransform *next, float angle) *)
+PROCEDURE gsk_transform_rotate (next: GskTransform; angle: SHORTREAL) : ADDRESS;
+
+(* GskTransform *gsk_transform_rotate_3d(GskTransform *next, float angle, const graphene_vec3_t *axis) *)
+PROCEDURE gsk_transform_rotate_3d (next: GskTransform; angle: SHORTREAL; axis: ADDRESS) : ADDRESS;
+
+(* GskTransform *gsk_transform_scale(GskTransform *next, float factor_x, float factor_y) *)
+PROCEDURE gsk_transform_scale (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL) : ADDRESS;
+
+(* GskTransform *gsk_transform_scale_3d(GskTransform *next, float factor_x, float factor_y, float factor_z) *)
+PROCEDURE gsk_transform_scale_3d (next: GskTransform; factor_x: SHORTREAL; factor_y: SHORTREAL; factor_z: SHORTREAL) : ADDRESS;
+
+(* GskTransform *gsk_transform_skew(GskTransform *next, float skew_x, float skew_y) *)
+PROCEDURE gsk_transform_skew (next: GskTransform; skew_x: SHORTREAL; skew_y: SHORTREAL) : ADDRESS;
+
+(* void gsk_transform_to_2d(GskTransform *self, float *out_xx, float *out_yx, float *out_xy, float *out_yy, float *out_dx, float *out_dy) *)
 PROCEDURE gsk_transform_to_2d (self: GskTransform; VAR out_xx: SHORTREAL; VAR out_yx: SHORTREAL; VAR out_xy: SHORTREAL; VAR out_yy: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL);
-(* gsk_transform_to_2d_components *)
+
+(* void gsk_transform_to_2d_components(GskTransform *self, float *out_skew_x, float *out_skew_y, float *out_scale_x, float *out_scale_y, float *out_angle, float *out_dx, float *out_dy) *)
 PROCEDURE gsk_transform_to_2d_components (self: GskTransform; VAR out_skew_x: SHORTREAL; VAR out_skew_y: SHORTREAL; VAR out_scale_x: SHORTREAL; VAR out_scale_y: SHORTREAL; VAR out_angle: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL);
-(* gsk_transform_to_affine *)
+
+(* void gsk_transform_to_affine(GskTransform *self, float *out_scale_x, float *out_scale_y, float *out_dx, float *out_dy) *)
 PROCEDURE gsk_transform_to_affine (self: GskTransform; VAR out_scale_x: SHORTREAL; VAR out_scale_y: SHORTREAL; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL);
-(* gsk_transform_to_matrix *)
+
+(* void gsk_transform_to_matrix(GskTransform *self, graphene_matrix_t *out_matrix) *)
 PROCEDURE gsk_transform_to_matrix (self: GskTransform; out_matrix: ADDRESS);
-(* gsk_transform_to_string *)
-PROCEDURE gsk_transform_to_string (self: GskTransform) : [ ADDRESS ];
-(* gsk_transform_to_translate *)
+
+(* char *gsk_transform_to_string(GskTransform *self) *)
+PROCEDURE gsk_transform_to_string (self: GskTransform) : ADDRESS;
+
+(* void gsk_transform_to_translate(GskTransform *self, float *out_dx, float *out_dy) *)
 PROCEDURE gsk_transform_to_translate (self: GskTransform; VAR out_dx: SHORTREAL; VAR out_dy: SHORTREAL);
-(* gsk_transform_transform *)
-PROCEDURE gsk_transform_transform (next: GskTransform; other: GskTransform) : [ ADDRESS ];
-(* gsk_transform_transform_bounds *)
+
+(* GskTransform *gsk_transform_transform(GskTransform *next, GskTransform *other) *)
+PROCEDURE gsk_transform_transform (next: GskTransform; other: GskTransform) : ADDRESS;
+
+(* void gsk_transform_transform_bounds(GskTransform *self, const graphene_rect_t *rect, graphene_rect_t *out_rect) *)
 PROCEDURE gsk_transform_transform_bounds (self: GskTransform; rect: ADDRESS; out_rect: ADDRESS);
-(* gsk_transform_transform_point *)
+
+(* void gsk_transform_transform_point(GskTransform *self, const graphene_point_t *point, graphene_point_t *out_point) *)
 PROCEDURE gsk_transform_transform_point (self: GskTransform; point: ADDRESS; out_point: ADDRESS);
-(* gsk_transform_translate *)
-PROCEDURE gsk_transform_translate (next: GskTransform; point: ADDRESS) : [ ADDRESS ];
-(* gsk_transform_translate_3d *)
-PROCEDURE gsk_transform_translate_3d (next: GskTransform; point: ADDRESS) : [ ADDRESS ];
-(* gsk_transform_unref *)
+
+(* GskTransform *gsk_transform_translate(GskTransform *next, const graphene_point_t *point) *)
+PROCEDURE gsk_transform_translate (next: GskTransform; point: ADDRESS) : ADDRESS;
+
+(* GskTransform *gsk_transform_translate_3d(GskTransform *next, const graphene_point3d_t *point) *)
+PROCEDURE gsk_transform_translate_3d (next: GskTransform; point: ADDRESS) : ADDRESS;
+
+(* void gsk_transform_unref(GskTransform *self) *)
 PROCEDURE gsk_transform_unref (self: GskTransform);
-(* gsk_transform_parse *)
-PROCEDURE gsk_transform_parse (string: ARRAY OF CHAR; out_transform: GskTransform) : [ INTEGER ];
+
+(* gboolean gsk_transform_parse(const char *string, GskTransform **out_transform) *)
+PROCEDURE gsk_transform_parse (string: ARRAY OF CHAR; out_transform: GskTransform) : INTEGER;
 
 END GskTransform.

+ 12 - 7
src/GskTransformNode.def

@@ -1,6 +1,9 @@
 DEFINITION MODULE FOR "C" GskTransformNode ;
 
-(* Generated by tools/gir2def.py from Gsk 4.0. *)
+(*
+   m2-GTK4 - GskTransformNode: a render node that applies a transform.
+   Mapped onto <gsk/gskrendernode.h>.
+*)
 
 FROM SYSTEM IMPORT ADDRESS;
 
@@ -13,11 +16,13 @@ EXPORT UNQUALIFIED
 TYPE
    GskTransformNode = ADDRESS;
 
-(* gsk_transform_node_new *)
-PROCEDURE gsk_transform_node_new (child: ADDRESS; transform: ADDRESS) : [ ADDRESS ];
-(* gsk_transform_node_get_child *)
-PROCEDURE gsk_transform_node_get_child (node: GskTransformNode) : [ ADDRESS ];
-(* gsk_transform_node_get_transform *)
-PROCEDURE gsk_transform_node_get_transform (node: GskTransformNode) : [ ADDRESS ];
+(* GskRenderNode *gsk_transform_node_new(GskRenderNode *child, GskTransform *transform) *)
+PROCEDURE gsk_transform_node_new (child: ADDRESS; transform: ADDRESS) : ADDRESS;
+
+(* GskRenderNode *gsk_transform_node_get_child(const GskRenderNode *node) *)
+PROCEDURE gsk_transform_node_get_child (node: GskTransformNode) : ADDRESS;
+
+(* GskTransform *gsk_transform_node_get_transform(const GskRenderNode *node) *)
+PROCEDURE gsk_transform_node_get_transform (node: GskTransformNode) : ADDRESS;
 
 END GskTransformNode.

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff