diamondburned / gotk4

Autogenerated GTK4 bindings for Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Progress

diamondburned opened this issue · comments

This issue keeps track of what's accomplished in the repository.

  • Types and signatures
    • Arrays
    • Enums
    • Functions
      • Signatures
        • No missing types
        • Boxed pointer types with interface{}
      • Implementation (see "Type resolver and converter")
    • Callback
    • Structs (records)
      • Type
      • Methods
    • Classes
      • Methods
    • Interfaces
      • Methods (as functions)
      • Virtual methods (as the interface body)
    • Add all missing types (as PRs to gotk3/glib)
      • glib.Parameter
      • glib.ParamSpec
      • glib.Callback
  • Type resolver and converter
    • Type resolver
      • Array type resolver
    • Type converter
      • Arrays
        • 1-level deep
        • Infinite recursion
        • GArray (can preallocate)
        • Null-terminated
      • Types
        • Custom GLib types
          • GType
          • GValue
          • GObject
          • GInitiallyUnowned
          • GCallback
        • Enums and Bitfields
        • Aliases
        • Callbacks and Functions
          • CGo signature headers (extern)
          • Base wraps
          • Destroy notifiers
        • Classes and Records
          • Base conversions (glib.Take and copying record fields)
          • Wrap function and parent wrap resolver
          • Memory management (ownership)

Current package list:

  • atk
  • gdk
  • gdkpixbuf
  • gdkpixdata
  • gdkwayland
  • gdkx11
  • gio
  • glib
  • gobject
  • graphene
  • gsk
  • gtk
  • pango
  • pangocairo

Is this something you'd like help with?

Is this something you'd like help with?

Oh definitely, though the code is kind of all over the place right now, and priority isn't clearly defined enough for collaboration, but the code base is far from being done.

Right now, I'm working on adding proper allocation support into the code and then build it, then see how far that takes me.

As far as missing things go, when you go generate the root directory, there will be lots of logs printing what is skipped and why, so I think that's a good place to start.

P/S: the type conversion routine is incomplete; I commented them out because I wanted to properly reuse the conversion process for the destination type, but that would require some extra tinkering. I'll leave it commented out for now (so the code that needs them are skipped) because they're low priority, but you're more than welcomed to give it a shot.

As a sidenote, I've went ahead and made a contributing guideline over at CONTRIBUTING.md.

I was thinking of using Vulcan, which was the primary driver for my interest in GTK4. I've since decided to stick with OpenGL, though I am still interested in helping with this, if I have the time.