Platform-native GUI library for Go.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1767 commits behind andlabs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
experiments
olddocs
test
tools
LICENSE
README.md
area.go
area_darwin.go
area_darwin.m
area_unix.go
area_windows.go
button.go
callbacks_unix.go
checkbox.go
combobox.go
combobox_darwin.m
comctl_windows.go
common_windows.go
control.go
controls_windows.go
d32
delegate_darwin.go
delegateuitask_darwin.m
dialog.go
dialog_darwin.go
dialog_darwin.m
dialog_unix.go
dialog_windows.go
doc.go
events_darwin.go
events_notdarwin.go
futureplans.md
grid.go
gtk_unix.h
gtkcalls_unix.go
gtkcasts_unix.go
init.go
init_windows.go
label.go
lineedit.go
listbox.go
listbox_darwin.go
listbox_darwin.m
listbox_unix.go
objc_darwin.go
objc_darwin.h
objc_darwin.m
prefsize_darwin.go
prefsize_darwin.m
prefsize_unix.go
prefsize_windows.go
progressbar.go
stack.go
stdfont_windows.go
stdwndclass_windows.go
sysdata.go
sysdata_darwin.go
sysdata_darwin.m
sysdata_unix.go
sysdata_windows.go
tableviewproposal.md
test.sh
todo.md
uitask_darwin.go
uitask_unix.go
uitask_windows.go
window.go
zconstants_windows_386.go
zconstants_windows_amd64.go

README.md

Woah, lots of attention! Thanks!

This is a placeholder README; the previous file (olddocs/oldREADME.md) was rather long and confusing. I'll be rewriting it properly soon.

Until then, here's the important things you need to know:

  • this package is very much incomplete and until I clear out the existing set of TODOs has an API which may change without warning (the API is stable for the most part)
  • this package requires Go 1.3, which is presently available as a RC build (source builds from go tip will work too)
    • I don't think the Windows side uses any Go 1.3 features, but just to be safe I'm going to say express caution
    • Unix builds need 1.3 to fix some type-checker bugs in cgo
    • Mac OS X builds need 1.3 because Go 1.3 adds Objective-C support to cgo
  • the Windows build does not need cgo unless you want to regenerate the zconstants_windows_*.go files; the other targets do
  • my plan is to target all versions of OSs that Go itself supports; that means:
    • Windows: Windows XP or newer
    • Unix: this is trickier; I decided to settle on GTK+ 3.4 or newer as Ubuntu 12.04 LTS ships with it
    • Mac OS X: Mac OS X 10.6 or newer
  • for the Windows build, you won't need to provide a comctl32.dll version 6 manifest, as the package produces its own
    • comctl32.dll version 6 is required for proper functioning!

andlabs/wakeup is a repository that provides a sample application.

If you are feeling adventurous, running ./test.sh (which accepts go build options) from within the package directory will build a test program which I use to make sure everything works. (I'm not sure how to do automated tests for a package like this, so go test will say no tests found for now; sorry.) If you are cross-compiling to Windows, you will need to have a very specific Go setup which allows multiple cross-compilation setups in a single installation; this requires a CL which won't be in Go 1.3 but may appear in Go 1.4 if accepted and both windows/386 and windows/amd64 set up for cgo. (This is because ./test.sh on Windows targets invariably regenerates the zconstants_windows_*.go files; there is no option to turn it off lest I become complacent and use it myself.)

Finally, please send documentation suggestions! I'm taking the documentation of this package very seriously because I don't want to make anything ambiguous. (Trust me, ambiguity in API documentation was a pain when writing this...)

Thanks!

(Note: I temporarily disabled Travis.ci; if I can figure out how to do good cross-compiles with it, then I can put it back.)