|
@@ -14,14 +14,14 @@ Verified with `gm2` 16.0.1 (experimental), GTK 4.18.6 and libadwaita 1.7.6.
|
|
|
|
|
|
|
|
## Features
|
|
## Features
|
|
|
|
|
|
|
|
-- **107 hand-written binding modules** across GLib, GObject, Gio, GTK4
|
|
|
|
|
|
|
+- **123 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),
|
|
|
- settings, and more.
|
|
|
|
|
|
|
+ gestures, 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).
|
|
|
-- **24 tests** and **18 runnable examples**.
|
|
|
|
|
|
|
+- **27 tests** and **19 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.
|
|
@@ -120,6 +120,7 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
| `dialogs` | `GtkAlertDialog` and `GtkColorDialog` |
|
|
| `dialogs` | `GtkAlertDialog` and `GtkColorDialog` |
|
|
|
| `drawing` | `GtkDrawingArea` + Cairo + Pango |
|
|
| `drawing` | `GtkDrawingArea` + Cairo + Pango |
|
|
|
| `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 |
|
|
|
| `adw` | libadwaita preferences app (toolbar view, rows, toast, about) |
|
|
| `adw` | libadwaita preferences app (toolbar view, rows, toast, about) |
|
|
|
|
|
|
|
|
## Module reference
|
|
## Module reference
|
|
@@ -146,6 +147,9 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
| `GtkStringList`, `GtkStringObject` | string model / item |
|
|
| `GtkStringList`, `GtkStringObject` | string model / item |
|
|
|
| `GMenu`, `GMenuModel`, `GSimpleAction`, `GAction`, `GActionMap` | menus and actions |
|
|
| `GMenu`, `GMenuModel`, `GSimpleAction`, `GAction`, `GActionMap` | menus and actions |
|
|
|
| `GtkFilterListModel`, `GtkCustomFilter`, `GtkSortListModel`, `GtkCustomSorter` | M2-callback filter/sort models |
|
|
| `GtkFilterListModel`, `GtkCustomFilter`, `GtkSortListModel`, `GtkCustomSorter` | M2-callback filter/sort models |
|
|
|
|
|
+| `GtkMultiSelection`, `GtkBitset` | multiple selection and bitsets |
|
|
|
|
|
+| `GtkTreeListModel`, `GtkTreeListRow`, `GtkTreeExpander` | tree models and expanders |
|
|
|
|
|
+| `GtkDirectoryList`, `GtkBookmarkList` | directory / bookmark models |
|
|
|
| `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 |
|
|
|
|
|
|
|
@@ -164,6 +168,8 @@ gm2 -fiso -Isrc -Ilib myprog.mod \
|
|
|
| `GtkAlertDialog`, `GtkColorDialog` | modern alert and colour dialogs |
|
|
| `GtkAlertDialog`, `GtkColorDialog` | modern alert and colour dialogs |
|
|
|
| `GtkCssProvider`, `GtkStyleContext` | CSS styling for the display |
|
|
| `GtkCssProvider`, `GtkStyleContext` | CSS styling for the display |
|
|
|
| `GtkStackSidebar`, `GtkSearchBar`, `GtkRevealer`, `GtkAspectFrame` | sidebar/search/animation/layout helpers |
|
|
| `GtkStackSidebar`, `GtkSearchBar`, `GtkRevealer`, `GtkAspectFrame` | sidebar/search/animation/layout helpers |
|
|
|
|
|
+| `GtkFlowBox`, `GtkFixed`, `GtkPicture`, `GtkToggleButton`, `GtkLinkButton`, `GtkCalendar`, `GtkLevelBar`, `GtkScrollbar` | reflowing grid, fixed/abs, image, toggle/link, date, level, scrollbar |
|
|
|
|
|
+| `GtkEventController`, `GtkGestures` | event controllers and gestures (click/drag/swipe/zoom/rotate/pan/long-press) |
|
|
|
| `GtkDrawingArea` + `Cairo` + `Pango` + `PangoCairo` | custom drawing with Cairo and text layout |
|
|
| `GtkDrawingArea` + `Cairo` + `Pango` + `PangoCairo` | custom drawing with Cairo and text layout |
|
|
|
| `GtkListBox`, `GtkListView`, `GtkGridView`, `GtkColumnView`, `GtkColumnViewColumn`, `GtkColumnViewCell`, `GtkListItem`, `GtkSignalListItemFactory`, `GtkSelectionModel`, `GtkSingleSelection`, `GtkNoSelection` | lists, grids and tables |
|
|
| `GtkListBox`, `GtkListView`, `GtkGridView`, `GtkColumnView`, `GtkColumnViewColumn`, `GtkColumnViewCell`, `GtkListItem`, `GtkSignalListItemFactory`, `GtkSelectionModel`, `GtkSingleSelection`, `GtkNoSelection` | lists, grids and tables |
|
|
|
|
|
|