/hbgi

hbgi - Harbour bindings for GObject Introspection

Primary LanguageCGNU Lesser General Public License v2.1LGPL-2.1

hbgi - Harbour bindings for GObject Introspection

These are bindings for the GObject Introspection library, to be used in Harbour. It is in no way complete, but already usable for writing moderately complex applications. It is almost fully based on pygobject - the similar bindings for Python - and can be viewed as the successor to xbgtk - the older Harbour bindings for GTK+.

Please report any issues on GitHub issues page at: https://github.com/tuffnatty/hbgi/issues

Requirements

Copyright Information

This software is covered by the GNU Lesser General Public License (version 2.1, or if you choose, a later version). Basically just don't say you wrote bits you didn't.

Documentation and Examples

hbgi lacks documentation and examples. As the project is modeled after Python bindings for GObject Introspection, I think the best source for docs and examples are Python examples - with the exception that they must be translated to Harbour, but this is mostly straightforward.

hbgi examples

Python GObject Introspection examples

Python GObject Introspection documentation

Compilation

So far only a Unix-based build script is available. You need hbmk2 from Harbour on your PATH. To build, it should be as simple as running:

$ ./build.sh

It produces both static and dynamic libraries. There was a report of a successful (static) build under Windows, using MSYS2.

Usage

To build your app with the static libraries:

hbmk2 MY_APP.prg -oMY_APP_STATIC_EXECUTABLE_NAME -gtcgi hbgi.hbc

To build your app with the dynamic library:

hbmk2 MY_APP.prg -oMY_APP_STATIC_EXECUTABLE_NAME -gtcgi -env:HBGI_DYNAMIC=yes hbgi.hbc

TODO List

  • Properties getter/setter support via :props
  • Inheritance of Harbour classes from GObject classes
  • More examples
  • Documentation (https://github.com/lazka/pgi-docgen can be used I guess)
  • ...