Haxe externs (and wrappers) for wxWidgets

gui, hxcpp, native, ui, wxWidgets, haxe
haxelib install hxWidgets 1.6.0



Build Status linux/osx Build status windows Issue Count

Haxe externs (and wrappers) for wxWidgets


You need the hxcpp library and at least Haxe 3.4.0, we recommend Haxe 3.4.2.


  • Download and install wxWidgets using installer from https://www.wxwidgets.org/downloads/
  • Create WXWIN environment var if setup didnt (eg: C:\wxWidgets-3.0.2)
  • Run vcvarsall.bat from Visual Studio dir (eg: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat")
  • Build shared and static releases of wxWidgets:
    • cd %WXWIN%\build\msw\
    • nmake.exe -f makefile.vc BUILD=release
    • nmake.exe -f makefile.vc BUILD=release SHARED=1

Requirements for Linux and Mac

You need wxWidgets 3.x and wx-config available in your path.


You can install wxWidgets with:

  • on debian/ubuntu: apt-get install libwxgtk3.0-dev libwxbase3.0-dev libwxgtk-webview3.0-dev


You need at least OSX 10.7 and you can install wxWidgets with:

brew update
brew install wxwidgets

More About this Library

hxWidgets is actually independent of haxeui-core (and haxeui-hxwidgets as well), and can be used on its own if you so desired (the showcase in this repo is an example of that). hxWidgets consists of two layers:

  • wx.widgets.* (e.g., wx.widgets.Button) : these are externs for Haxe (hxcpp) for wxWidgets, and could be used as-is — though, working with externs, esp. C++ externs, can be... difficult.

  • hx.widgets.* (e.g., hx.widgets.Button) : these are nice Haxe wrappers for the externs so you can just do new Button(...) and be done with it (it manages all the pointers, etc.). They also make things a little more "haxey" in the sense that you have myButton.bitmap = ... rather than the traditional wx way myButton.setBitmap(...).

Building WxWidgets From Source (Linux & OSX)

Sometimes is useful to have the most up-to-date version of wxWidgets running on a linux or OSX system, to do this follow these steps:

  • download source archive from: https://www.wxwidgets.org/downloads/
  • unzip to, for example: /home/users/username/wxwidgets3.1.3/
  • create a folder there: mkdir wx_build
  • enter folder: cd wx_build
  • configure: ../configure --with-opengl --disable-shared
  • make: make
  • once built, install: make install (may need sudo if not default /usr/local location)
  • wx-config --version should now show the version you just built
    • you may need to add the unzip folder to your $PATH var if it doesnt show the right version