hxWidgets
hxWidgets copied to clipboard
Haxe externs (and wrappers) for wxWidgets
hxWidgets
Haxe externs (and wrappers) for wxWidgets
Dependencies
You need the hxcpp library and at least Haxe 3.4.0, we recommend Haxe 3.4.2.
Windows
- Download and install wxWidgets using installer from https://www.wxwidgets.org/downloads/
- Create
WXWINenvironment var if setup didnt (eg:C:\wxWidgets-3.0.2) - Run
vcvarsall.batfrom 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=releasenmake.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.
Linux
You can install wxWidgets with:
- on debian/ubuntu:
apt-get install libwxgtk3.0-dev libwxbase3.0-dev libwxgtk-webview3.0-dev
Mac
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 donew 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 havemyButton.bitmap = ...rather than the traditional wx waymyButton.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- if you get errors during configure you likely need to run one (or all) of the following (on linux):
sudo apt install build-essentialsudo apt install libgtk2.0-devsudo apt install libgtk-3-devsudo apt install freeglut3-dev
- if you get errors during configure you likely need to run one (or all) of the following (on linux):
- make:
make(adding-j3will allow your system to use 3 cores and thus speed up the initial compile) - once built, install:
make install(may needsudoif not default/usr/locallocation) wx-config --versionshould 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