Go to file
Pietro Gagliardi aef0521c25 Bumped minimum versions. 2016-05-28 13:08:04 -04:00
prev More work. 2015-12-11 22:48:25 -05:00
Compatibility.md Updated the compatibility document. 2015-12-17 16:17:03 -05:00
LICENSE Added license and README. 2014-02-17 18:38:50 -05:00
README.md Bumped minimum versions. 2016-05-28 13:08:04 -04:00
TODO.md More TODOs. 2016-01-06 20:43:32 -05:00
area.go Added Area.ScrollTo(). 2016-01-24 21:50:59 -05:00
areahandler.go More drawing work. 2015-12-20 12:24:10 -05:00
bindTODO Added a TODO for binding support. 2016-04-14 17:13:41 -04:00
box.go Added Box. Phew! Now to port over the libui test program... 2015-12-12 20:15:14 -05:00
button.go Wrote up Area for real this time. 2015-12-19 19:33:06 -05:00
checkbox.go Added uiCombobox. 2015-12-12 16:18:58 -05:00
combobox.go Added uiCombobox. 2015-12-12 16:18:58 -05:00
control.go Added Button and Checkbox. 2015-12-12 15:52:43 -05:00
datetimepicker.go Added DateTimePicker. 2015-12-12 18:59:01 -05:00
draw.go Removed small caps from the font descriptor. It will be made a setting on TextLayout instead. 2016-04-15 14:02:24 -04:00
entry.go More TODOs. 2015-12-13 02:26:26 -05:00
fontbutton.go More TODOs. 2016-04-20 14:18:56 -04:00
group.go Added Tab. That just leaves Box... 2015-12-12 19:52:22 -05:00
label.go Added Label. 2015-12-12 16:59:57 -05:00
link_darwin.go Bumped minimum versions. 2016-05-28 13:08:04 -04:00
link_unix.go Added OS X building. Go 1.5 required because of https://github.com/golang/go/issues/9411 which affects this. Also set up proper multithreading on OS X. Currently crashes due to similar issue I've had with libui. 2015-12-13 02:24:43 -05:00
link_windows.go Added OS X building. Go 1.5 required because of https://github.com/golang/go/issues/9411 which affects this. Also set up proper multithreading on OS X. Currently crashes due to similar issue I've had with libui. 2015-12-13 02:24:43 -05:00
main.go Re-enabled @executable_path and OS X linking now that the OS X build is fixed. Now I just have to figure out why it's not linking... 2016-01-06 20:24:31 -05:00
progressbar.go Added ProgressBar. 2015-12-12 18:44:35 -05:00
radiobuttons.go Updated the uiRadioButtons documentation based on the latest change in libui, which gets rid of a few quirks. 2016-05-21 02:02:25 -04:00
separator.go Added Separator. 2015-12-12 18:48:43 -05:00
slider.go Documented the new limit swapping of uiSlider and uiSpinbox. 2016-05-22 20:13:35 -04:00
spinbox.go Documented the new limit swapping of uiSlider and uiSpinbox. 2016-05-22 20:13:35 -04:00
stddialogs.go Fixed some typos. 2015-12-21 17:14:40 -05:00
tab.go Fixed a latent bug in Tab.InsertAt() where inserted controls are appended to t.children, causing issues during Tab.Destroy(). 2015-12-12 23:53:27 -05:00
util.go More C.CBytes() preparatory work. 2016-04-12 23:27:29 -04:00
window.go Added Button and Checkbox. 2015-12-12 15:52:43 -05:00
zy_page1_test.go Ported the test page 1 from libui. 2015-12-12 21:44:50 -05:00
zy_page2_test.go Ported the test page 1 from libui. 2015-12-12 21:44:50 -05:00
zz_test.go Ported the test page 1 from libui. 2015-12-12 21:44:50 -05:00

README.md

ui: platform-native GUI library for Go

This package is still very much WIP. DO NOT SIMPLY go get THE PACKAGE AS IT IS RIGHT NOW; IT WILL NOT WORK. READ BELOW.

As of December 2015 the previous package ui API that has been around since this repo was started is no longer being supported. It is being replaced with a much more stable API built around my libui; see below.

If you still want to use the old package ui, you can get the package under the pre-libui tag. Keep in mind that it's not stable, buggy, and no longer supported. If you do continue, make sure that instances of ui.Window escape to the heap to avoid some of the issues.

If you want to play around with this new package ui, you'll need to install libui manually. Clone that repo and make (with GNU make) libui, then:

  • On Windows, merely copy out\libui.dll to the root of this repo.
    • Go 1.5 is adequate.
  • On OS X, copy out/libui.A.dylib to the root of this repo as libui.A.dylib and symlink it to libui.dylib
    • You must also be running Go 1.6 Beta 2 or newer due to more Go bugs.
  • On other Unixes, copy out/libui.so.0 to the root of this repo as libui.so.0 and symlink it to libui.so
    • Go 1.5 is adequate.

and then copy ui.h to the top of this repo as well. (You may symlink any files instead of copying if so choose.)

Stable releases of package ui will have all these files built in; these steps are only necessary for master builds.

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

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