Go to file
Pietro Gagliardi bd44815a54 Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
examples/widgetgallery Whoops, forgot to document NewStandaloneLabel()'s demise and amend the example program. Fixed. 2014-10-18 17:40:29 -04:00
gtkpopover More GTK+ Popover work. I should probably make this a proper widget. 2014-10-10 22:49:03 -04:00
mergeback ...in with the new. 2014-08-30 23:02:02 -04:00
popover More attempted GTK+ Popover work. 2014-10-11 17:01:14 -04:00
proposals ...in with the new. 2014-08-30 23:02:02 -04:00
wintable More image list refinements. 2014-10-21 14:39:46 -04:00
LICENSE Added license and README. 2014-02-17 18:38:50 -05:00
README.md README typo fixes. 2014-10-24 21:38:59 -04:00
area.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
area_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
area_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
area_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
area_windows.c Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
area_windows.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
assortednotes.md Out with the old... 2014-08-30 23:01:08 -04:00
basicctrls.go More TODOs. 2014-10-27 11:03:39 -04:00
basicctrls_darwin.m Started the OS X implementation of Textbox. 2014-10-24 16:11:53 -04:00
basicctrls_windows.c Fixed Group on Windows not sending events to children. I /think/ we're done with container madness on the Windows backend... 2014-10-27 10:41:10 -04:00
button_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
button_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
button_windows.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
checkbox_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
checkbox_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
checkbox_windows.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
comctl32_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
common_darwin.go ...in with the new. 2014-08-30 23:02:02 -04:00
common_darwin.m Started the OS X implementation of Textbox. 2014-10-24 16:11:53 -04:00
common_unix.go ...in with the new. 2014-08-30 23:02:02 -04:00
common_windows.c Removed the gouicontainer window class from the Windows backend; it is no longer needed. 2014-10-27 10:19:39 -04:00
common_windows.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
compatibility.md More compatibility documentation. 2014-10-21 21:14:32 -04:00
container.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
container_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
container_darwin.m Used the alignment rect instead of the frame for laying out and sizing controls on Mac OS X. Also updated the future plans document. 2014-10-24 19:13:18 -04:00
container_unix.c Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
container_unix.go Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
container_windows.c Removed the gouicontainer window class from the Windows backend; it is no longer needed. 2014-10-27 10:19:39 -04:00
container_windows.go Removed the gouicontainer window class from the Windows backend; it is no longer needed. 2014-10-27 10:19:39 -04:00
control.go Reimplemented Control.containerShow()/Control.containerHide(). Will be needed to fully move Tab on Windows away from container. 2014-10-26 15:15:13 -04:00
control_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
control_darwin.m Used the alignment rect instead of the frame for laying out and sizing controls on Mac OS X. Also updated the future plans document. 2014-10-24 19:13:18 -04:00
control_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
control_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
control_windows.go Reimplemented Control.containerShow()/Control.containerHide(). Will be needed to fully move Tab on Windows away from container. 2014-10-26 15:15:13 -04:00
dialog.go ...in with the new. 2014-08-30 23:02:02 -04:00
dialog_darwin.go ...in with the new. 2014-08-30 23:02:02 -04:00
dialog_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
dialog_unix.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
dialog_windows.c Resolved TODO about OpenFile() on GTK+ returning NULL. 2014-08-31 19:07:55 -04:00
dialog_windows.go ...in with the new. 2014-08-30 23:02:02 -04:00
doc.go ...in with the new. 2014-08-30 23:02:02 -04:00
events_darwin.go ...in with the new. 2014-08-30 23:02:02 -04:00
events_notdarwin.go ...in with the new. 2014-08-30 23:02:02 -04:00
future More TODOs. 2014-10-27 11:03:39 -04:00
grid.go Removed container from SimpleGrid and Grid. This is necessary to do now, alas; the Windows gouicontainers left over weren't being hidden, causing undesirable Tab behavior. 2014-10-26 21:33:52 -04:00
group_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
group_unix.go Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
group_windows.go Fixed Group on Windows not sending events to children. I /think/ we're done with container madness on the Windows backend... 2014-10-27 10:41:10 -04:00
gtk_unix.h ...in with the new. 2014-08-30 23:02:02 -04:00
imagelist.go ...in with the new. 2014-08-30 23:02:02 -04:00
imagelist_darwin.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
imagelist_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
imagelist_unix.go Changed deprecated gdk_pixbuf_unref() call to g_object_unref() in GTK+ ImageList. 2014-10-11 17:35:01 -04:00
imagelist_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
imagelist_windows.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
init_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
label_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
label_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
label_windows.go Added Textbox and implemented it on Windows. 2014-10-23 16:54:21 -04:00
objc_darwin.h Added Mac OS X Textbox Go-side implementation. Doesn't quite work yet. 2014-10-24 16:38:23 -04:00
prevlib.tar Out with the old... 2014-08-30 23:01:08 -04:00
scrapped ...in with the new. 2014-08-30 23:02:02 -04:00
simplegrid.go Removed container from SimpleGrid and Grid. This is necessary to do now, alas; the Windows gouicontainers left over weren't being hidden, causing undesirable Tab behavior. 2014-10-26 21:33:52 -04:00
stack.go De-container-ized Stack. 2014-10-26 20:08:53 -04:00
tab_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
tab_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
tab_unix.go Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
tab_windows.c Added sharedWndProc() to Tab on Windows. 2014-10-26 21:44:02 -04:00
tab_windows.go Reverted to resizing all tabs equally; keeps code simple. 2014-10-26 18:52:48 -04:00
table.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
table_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
table_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
table_unix.c Fixed Tables on GTK+ not updating properly. Should have done this ages ago, argh 2014-10-19 17:10:16 -04:00
table_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
table_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
table_windows.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
textbox_darwin.go Added Mac OS X Textbox Go-side implementation. Doesn't quite work yet. 2014-10-24 16:38:23 -04:00
textbox_unix.go Implemented Textbox on GTK+. 2014-10-23 18:13:00 -04:00
textbox_windows.go Added Textbox and implemented it on Windows. 2014-10-23 16:54:21 -04:00
textfield_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
textfield_unix.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
textfield_windows.go Added Textbox and implemented it on Windows. 2014-10-23 16:54:21 -04:00
uitask.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
uitask_darwin.go ...in with the new. 2014-08-30 23:02:02 -04:00
uitask_darwin.m ...in with the new. 2014-08-30 23:02:02 -04:00
uitask_unix.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
uitask_windows.c ...in with the new. 2014-08-30 23:02:02 -04:00
uitask_windows.go Removed the gouicontainer window class from the Windows backend; it is no longer needed. 2014-10-27 10:19:39 -04:00
warningpopover_darwin.m More TODOs. 2014-09-23 14:53:03 -04:00
winapi_windows.h Fixed Group on Windows not sending events to children. I /think/ we're done with container madness on the Windows backend... 2014-10-27 10:41:10 -04:00
window.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
window_darwin.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
window_darwin.m Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
window_unix.go Migrated the GTK+ backend to the new new container system in which containers are no longer full controls but are still used to hold more than one control and handle the resizing entirely on their own. 2014-10-27 15:21:47 -04:00
window_windows.c Began migrating the Windows code away from using container entirely. This is going to be a mess for Tab... hopefully only a short-term one. 2014-10-26 14:43:45 -04:00
window_windows.go Began migrating the Windows code away from using container entirely. This is going to be a mess for Tab... hopefully only a short-term one. 2014-10-26 14:43:45 -04:00
yz_icons_test.go go fmt. Precursor to bug report filing. 2014-10-02 10:05:53 -04:00
yz_repaint_test.go Merged new container/sizing stuff. 2014-10-18 17:03:07 -04:00
zz_test.go Added Textbox and implemented it on Windows. 2014-10-23 16:54:21 -04:00

README.md

ui: platform-native GUI library for Go

Feature requests wanted! (Really; IDK what to add next!)

This is a library that aims to provide simple GUI software development in Go. It runs on/requires:

  • Windows: cgo, MinGW-w64 (see note below), Windows XP and newer
    • Note: Notice I specifically said MinGW-w64 here. This is important: regular MinGW is missing various recent header files which package ui uses, and thus won't build with it. Make sure your MinGW is that version instead. If you're running on Windows and are not sure what to download, get the mingw-builds distribution.
  • Mac OS X: cgo, Mac OS X 10.7 and newer
  • other Unixes: cgo, GTK+ 3.4 and newer

Go 1.3 is required. Note that vanilla 1.3 has a bug in Mac OS X cgo; the next release will fix it.

(this README needs some work)

Be sure to have at least each outermost Window escaping to the heap until a good resolution to Go issue 8310 comes out.

prevlib.tar contains the previous version of the library as it stood when I restarted; don't bother using it.

Documentation

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

Updates

24 October 2014
Textbox, a multi-line version of TextField, has been added. (Note that it may not work properly on Mac OS X; this is being investigated.) In addition, excess space around controls on Mac OS X should be settled now.

18 October 2014
The container system was rewritten entirely. You can now set a margin on Windows and Groups and spacing between controls ("padding") on Stacks, Grids, and SimpleGrids. Margins on Tabs will come soon. The work needed to change this will make future additions (like Popover and Spinbox) easier/more sensible. (The Mac OS X code is still glitchy; mind the dust.)

As part of the change, standalone Labels have been removed. All Labels now behave like standalone labels. A new layout container, Form, will be introduced in the near future to allow proper layout of widgets with labels.

3 September 2014
The new GtkGrid-style Grid is now implemented! See its documentation for more details. Also, debugging spew has been removed.

31 August 2014
Grid is now renamed SimpleGrid in preparation for implementing a more GtkGrid-like Grid. Mind the change.

Screenshots

The example widget gallery on GTK+ in the Adwaita theme (3.13/master):

widget gallery example