Interfacing Raku to Gnome GTK+

Class hierargy

Below there is a table of the object hierarchy taken from Christoph Reiter and is used here to show what is implemented and what is deprecated in Gdk. Module path names are removed from the Raku modules when in Gnome::Gdk3. E.g. Screen is implemented as Gnome::Gdk3::Screen. ├─✗ in front of a Gdk module means that it is deprecated or will not be implemented for other reasons.

Tree of Gdk3 C structures             Raku module
------------------------------------- -----------------------------------------
TopLevelClassSupport                  Gnome::N::TopLevelClassSupport
│
GObject                               Gnome::GObject::Object
├─ GdkColormap
├─ GdkDevice                          Device
├─ GdkDisplay                         Display
├─ GdkDisplayManager
├─ GdkDragContext                     DragContext
├─ GdkDrawable
|  ├─ GdkPixmap
|  ╰─ GdkWindow                       Window
├─ GdkGC
├─ GdkImage
├─ GdkKeymap
├─ GdkPixbuf                          Pixbuf
├─ GdkPixbufAnimation
├─ GdkPixbufAnimationIter
├─ GdkPixbufLoader
├─ GdkScreen                          Screen
╰─ GdkVisual                          Visual

TopLevelClassSupport                  Gnome::N::TopLevelClassSupport
│
GBoxed                                Gnome::GObject::Boxed
├─ GdkRGBA                            RGBA (not according to doc!)
╰─

TopLevelClassSupport                  Gnome::N::TopLevelClassSupport
├─ GdkAtom                            Atom
├─ GdkEvents                          Events
├─ GdkKeysyms                         Keysyms
╰─