|
@@ -14,14 +14,14 @@ Verified with `gm2` 16.0.1 (experimental), GTK 4.18.6 and libadwaita 1.7.6.
|
|
|
|
|
|
|
|
## Features
|
|
## Features
|
|
|
|
|
|
|
|
-- **132 hand-written binding modules** across GLib, GObject, Gio, GTK4
|
|
|
|
|
|
|
+- **139 hand-written binding modules** across GLib, GObject, Gio, GTK4
|
|
|
and libadwaita — windows, widgets, inputs, containers, model-backed
|
|
and libadwaita — windows, widgets, inputs, containers, model-backed
|
|
|
views, actions/menus/accelerators, dialogs, CSS, drawing (Cairo/Pango),
|
|
views, actions/menus/accelerators, dialogs, CSS, drawing (Cairo/Pango),
|
|
|
- gestures, drag-and-drop, media, settings, and more.
|
|
|
|
|
|
|
+ gestures, drag-and-drop, media, OpenGL, printing, settings, and more.
|
|
|
- **Pure-Modula-2 helpers**: `GtkUtils` (string/number conversion,
|
|
- **Pure-Modula-2 helpers**: `GtkUtils` (string/number conversion,
|
|
|
`Connect`, `SetAccel`, ownership and `GError` helpers) and
|
|
`Connect`, `SetAccel`, ownership and `GError` helpers) and
|
|
|
`GtkClosures` (per-connection signal contexts with cleanup).
|
|
`GtkClosures` (per-connection signal contexts with cleanup).
|
|
|
-- **31 tests** and **22 runnable examples**.
|
|
|
|
|
|
|
+- **34 tests** and **24 runnable examples**.
|
|
|
- **Generator + verifier**: `tools/gir2def.py` turns a `.gir` file into
|
|
- **Generator + verifier**: `tools/gir2def.py` turns a `.gir` file into
|
|
|
`.def` files; `tools/gir_verify.py` checks every generated identifier
|
|
`.def` files; `tools/gir_verify.py` checks every generated identifier
|
|
|
against the installed library. Verified clean across 8602 identifiers.
|
|
against the installed library. Verified clean across 8602 identifiers.
|
|
@@ -122,6 +122,8 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
| `demo` | searchable demo browser (filter model + stack of pages) |
|
|
| `demo` | searchable demo browser (filter model + stack of pages) |
|
|
|
| `gestures` | click/drag gestures on a drawing area |
|
|
| `gestures` | click/drag gestures on a drawing area |
|
|
|
| `customwidget` | custom `GtkWidget` and `GdkPaintable` via the C shim |
|
|
| `customwidget` | custom `GtkWidget` and `GdkPaintable` via the C shim |
|
|
|
|
|
+| `customlayout` | custom `GtkLayoutManager` via the C shim |
|
|
|
|
|
+| `gl` | OpenGL clearing inside a `GtkGLArea` |
|
|
|
| `media` | `GdkTexture` in a `GtkPicture`, plus `GtkVideo` |
|
|
| `media` | `GdkTexture` in a `GtkPicture`, plus `GtkVideo` |
|
|
|
| `clipboard` | copy/paste text through `GdkClipboard` |
|
|
| `clipboard` | copy/paste text through `GdkClipboard` |
|
|
|
| `adw` | libadwaita preferences app (toolbar view, rows, toast, about) |
|
|
| `adw` | libadwaita preferences app (toolbar view, rows, toast, about) |
|
|
@@ -155,6 +157,8 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
| `GtkDirectoryList`, `GtkBookmarkList` | directory / bookmark models |
|
|
| `GtkDirectoryList`, `GtkBookmarkList` | directory / bookmark models |
|
|
|
| `GtkDropTarget`, `GtkDragSource`, `GdkContentProvider`, `GdkClipboard` | drag-and-drop and clipboard |
|
|
| `GtkDropTarget`, `GtkDragSource`, `GdkContentProvider`, `GdkClipboard` | drag-and-drop and clipboard |
|
|
|
| `GdkTexture`, `GdkPixbuf`, `GtkVideo`, `GtkMediaFile`, `GtkMediaStream` | images and media |
|
|
| `GdkTexture`, `GdkPixbuf`, `GtkVideo`, `GtkMediaFile`, `GtkMediaStream` | images and media |
|
|
|
|
|
+| `GtkGLArea`, `GdkGLContext`, `GL` | OpenGL rendering (`-lGL`) |
|
|
|
|
|
+| `GtkPrintOperation`, `GtkPrintSettings`, `GtkPageSetup`, `GtkPrintContext` | printing |
|
|
|
| `GFile`, `GtkFileDialog` | file handles and the native dialog |
|
|
| `GFile`, `GtkFileDialog` | file handles and the native dialog |
|
|
|
| `GSettings`, `GSettingsSchema` | typed settings and schema lookup |
|
|
| `GSettings`, `GSettingsSchema` | typed settings and schema lookup |
|
|
|
|
|
|
|
@@ -196,7 +200,7 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
|---|---|
|
|
|---|---|
|
|
|
| `GtkUtils` | `CStrToM2`, `StrAppend`, `IntToStr`, `Connect`, `SetAccel`, `Unref`, `Free`, `ErrorMessage`, `ClearError` |
|
|
| `GtkUtils` | `CStrToM2`, `StrAppend`, `IntToStr`, `Connect`, `SetAccel`, `Unref`, `Free`, `ErrorMessage`, `ClearError` |
|
|
|
| `GtkClosures` | `Connect2`/`Connect3` (and owned variants) for per-connection signal state |
|
|
| `GtkClosures` | `Connect2`/`Connect3` (and owned variants) for per-connection signal state |
|
|
|
-| `M2GtkShim` (`lib/m2gtkshim.c`) | C shim for GObject subclassing: a custom `GtkWidget`, a `GdkPaintable`, and a generic `GListModel`, all driven by Modula-2 callbacks |
|
|
|
|
|
|
|
+| `M2GtkShim` (`lib/m2gtkshim.c`) | C shim for GObject subclassing: a custom `GtkWidget`, a `GdkPaintable`, a generic `GListModel`, and a custom `GtkLayoutManager`, all driven by Modula-2 callbacks |
|
|
|
|
|
|
|
|
## Signals, ownership and errors
|
|
## Signals, ownership and errors
|
|
|
|
|
|