Language Bindings for the C++ API: Fourth Quarter Report and Post-GSoC Goals

Blog post by jalopeura on Sat, 2011-08-20 15:56

The following classes have been implemented; some methods and functions have not been implemented due to dependencies on unimplemented classes, but the classes below are otherwise complete:

From the Application Kit: From the Interface Kit: From the Storage Kit: From the Support Kit:
Application Clipboard Cursor Handler Invoker Looper Message Messenger Alert Box Button CheckBox ColorControl Control Font Menu ListItem ListView MenuBar MenuField MenuItem OutlineListView Picture PictureButton Point Polygon PopUpMenu RadioButton Rect Screen ScrollBar ScrollView SeparatorItem Shape Slider StatusBar StringItem StringView TabView TextControl TextView View Window Entry EntryList FindDirectory* Mime MimeType Node NodeInfo NodeMonitor* Path Query Statable Volume VolumeRoster Archivable Beep* Errors* TypeConstants*

*These don’t actually contains any classes, Errors and TypeConstants expose constants; Beep exposes functions; FindDirectory and NodeMonitor expose constants and functions.

The following classes were partially implemented, but had bugs that could not be resolved before the end of GSoC:

Bitmap FilePanel ChannelControl ChannelSlider ColumnListView Gradient (and derived classes) OptionControl OptionPopUp

The following classes from the original timeline were not implemented:

Dragger Shelf Region PrintJob

My goals for the fourth quarter were:

  • Fix bugs reported by users (None reported)
  • Add documentation (Done)
  • Write additional example programs and enhance existing ones (Done)

The generator and interface language have been documented; the documentation on the classes themselves is still limited.

Post-GSoC goals:

  • Add support for keyword-style entry
  • Add support for functions as parameters if possible
  • Add support for templates as parameters if possible
  • Continue to add new bindings
  • Fix bugs as they are discovered

I don’t know how long it will take me to meet these goals; now that GSoC is over, I won’t be able to spend as much time on this project.

The Python extensions have not been tested very well; there are two simple programs that test the basic functionality, and those work. In addition, work on the Perl test programs exposed a number of bugs that were due to mistakes in the definition files, which means that those particular bugs were fixed for Python as well. But there are very likely a large number of Python-specific bugs that will only come to light with more testing.

As always, the files are available via the project page:; as requested by jrabbit, the Python extension is also available via PyPI. The Perl extension should be available on CPAN soon; I’m waiting for approval of the namespace from the maintainers.

Note: To report bugs, attach a comment here or request to be added as a project member via so you can report bugs via the project site.