Platform-native GUI library for Go.
Go C C++
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
LICENSE Added license and README. Feb 17, 2014
README.md Oops Mar 27, 2018
TODO.md More TODOs. Jan 7, 2016
area.go Added Area.ScrollTo(). Jan 25, 2016
areahandler.go More drawing work. Dec 20, 2015
bindTODO Added a TODO for binding support. Apr 14, 2016
box.go Added Box. Phew! Now to port over the libui test program... Dec 13, 2015
button.go Wrote up Area for real this time. Dec 20, 2015
checkbox.go Added uiCombobox. Dec 12, 2015
combobox.go Switched OS X to use statically linked libui. May 29, 2016
control.go Added Button and Checkbox. Dec 12, 2015
datetimepicker.go Added DateTimePicker. Dec 12, 2015
draw.go Removed small caps from the font descriptor. It will be made a settin… Apr 15, 2016
dummy_windows.cpp Set up the Windows builds. Almost working! Jun 5, 2016
entry.go More TODOs. Dec 13, 2015
fontbutton.go More TODOs. Apr 20, 2016
group.go Added Tab. That just leaves Box... Dec 13, 2015
label.go Added Label. Dec 12, 2015
libui_darwin_amd64.a Windows bugfix. Feb 18, 2018
libui_linux_386.a Updated everything to alpha3.1. Jun 5, 2016
libui_linux_amd64.a Windows bugfix. Feb 18, 2018
libui_windows_386.a Windows bugfix. Feb 18, 2018
libui_windows_386.res.o Set up the Windows builds. Almost working! Jun 5, 2016
libui_windows_amd64.a Windows bugfix. Feb 18, 2018
libui_windows_amd64.res.o Updated everything to alpha3.1. Jun 5, 2016
link_darwin_amd64.go Fixed Linux static linking. May 30, 2016
link_linux_386.go Fixed Linux static linking. May 30, 2016
link_linux_amd64.go Fixed Linux static linking. May 30, 2016
link_windows_386.go Rename static_windows_*.o files to .syso Jun 19, 2016
link_windows_amd64.go Rename static_windows_*.o files to .syso Jun 19, 2016
main.go Added some extra documentation to QueueMain. Fixes #164. Mar 28, 2018
progressbar.go Added ProgressBar. Dec 12, 2015
radiobuttons.go Updated the uiRadioButtons documentation based on the latest change i… May 21, 2016
separator.go Added Separator. Dec 12, 2015
slider.go Documented the new limit swapping of uiSlider and uiSpinbox. May 23, 2016
spinbox.go Documented the new limit swapping of uiSlider and uiSpinbox. May 23, 2016
static.manifest Set up the Windows builds. Almost working! Jun 5, 2016
static.rc Set up the Windows builds. Almost working! Jun 5, 2016
static_windows_386.syso Rename static_windows_*.o files to .syso Jun 19, 2016
static_windows_amd64.syso Rename static_windows_*.o files to .syso Jun 19, 2016
stddialogs.go Safer nil pointer handling in stddialogs Jun 10, 2016
tab.go Fixed a latent bug in Tab.InsertAt() where inserted controls are appe… Dec 13, 2015
ui.h Updated everything to alpha3.1. Jun 5, 2016
util.go More C.CBytes() preparatory work. Apr 13, 2016
window.go Added Button and Checkbox. Dec 12, 2015
zy_page1_test.go Ported the test page 1 from libui. Dec 13, 2015
zy_page2_test.go Ported the test page 1 from libui. Dec 13, 2015
zz_test.go Ported the test page 1 from libui. Dec 13, 2015

README.md

ui: platform-native GUI library for Go

Update 17 February 2018

I fixed the Enter+Escape crashing bug on Windows, and applied the resultant Alpha 3.5 binary release to package ui. However, build issues prevented a linux/386 binary from being made, so the API updates won't come yet. The next Alpha release, which will use semver and thus be called v0.4.0, should hopefully have no such issues. Sorry!

Update 5 June 2016: You can FINALLY go get this package!

go get should work out of the box for the following configurations:

  • darwin/amd64
  • linux/386
  • linux/amd64
  • windows/386
  • windows/amd64

Everything is now fully static — no DLLs or shared objects anymore!

Note that these might not fully work right now, as the libui Alpha 3.1 API isn't fully implemented yet, and there might be residual binding problems. Hopefully none which require an Alpha 3.2...

New README

This is a library that aims to provide simple GUI software development in Go.

It is based on my libui, a simple cross-platform library that does the same thing, but written in C. You must include this library in your binary distributions.

It runs on/requires:

  • Windows: cgo, Windows Vista SP2 with Platform Update and newer
  • Mac OS X: cgo, Mac OS X 10.8 and newer
  • other Unixes: cgo, GTK+ 3.10 and newer
    • Debian, Ubuntu, etc.: sudo apt-get install libgtk-3-dev
    • Red Hat/Fedora, etc.: sudo dnf install gtk3-devel
    • TODO point out this is fine for most people but refer to distro docs if more control is needed, including cross-compilation instructions
    • TODO clean this part up and put it in the appropriate place (maybe libui itself)

It also requires Go 1.6 or newer (due to various bugs in cgo that were fixed only starting with 1.6).

(this README needs some work)

Installation

Documentation

The in-code documentation needs improvement. I have written a tutorial in the Wiki.

Updates