Added another row to the open/save dialog test table.
Reordered each part of the Windows uitask so that it does things in the same order and with the same goroutine setup as the other platforms; this gets rid of a few channels. Also panics on more errors (gets rid of a few more channels) and removed some stray TODOs.
Removed a stray TODO comment whose purpose is long forgotten.
Changed the cSysData dummy functions to an interface that a dummy sysData instance is tested against to make sure that not only all functions exist, but also that they are all the correct type.
More TODOs.
Moved <stdlib.h> includes in the GTK+ backend to gtk_unix.h; organized that file a bit.
Removed winerrors.md because I screwed it ages ago.
Got rid of gtkWidget and changed to using *C.GtkWidget everywhere. This gets rid of some of the casting functions and invocations of said functions, and only adds sysdata_unix.go to the cgo list.
Removed the initText parameter from sysData.make() and changed all invocations to call sysData.setText() separately; this avoids the need to check if sysData.setText() is valid. Also implemented that on GTK+.
Made the sysData.make() change from the previous commit on the Windows backend.
Separated initial text from sysData.make() on the Mac OS X backend, completing that set of commits.
Fixed the Windows stalling when scrolling an Area problem: messages were getting lost because (I assume) scrolling is done in a modal event loop. Alas, we have to change to using a dummy window to handle events. Also altered the respective TODO to document bugs now exposed by this fix.
Remove TODO about GTK+ and Cocoa errors since we're just assuming errors are mistakes I made in the implementation because at this point that's really what we're left with since on Cocoa doing manual exception handling is discouraged... or something like that.
More TODOs.
Fixed Windows control sizing: turns out simply calling GetTextMetrics() was not enough, as the GetDC() functions don't load the control font into the DC; we have to do it ourselves with SelectObject() (according to GetTextMetrics()'s docs on MSDN). Upon re-evaluation, the only things that need custom fonts are menus and statusbars; I don't know if menus can be done with the standard contorls and statusbars change the font of all controls inside... so how fonts are handled in classData needs to change now.
Changed the font loading on Windows to always load the control font unless a flag to not load any font is set; when menus and statusbars are added, they need special casing. This also means the preferred size calculations reads controlFont directly (it will need the same change).
Control candidates document updates.
Fixed odd Listbox sizing on Windows. (Windows by default sizes List Box controls so that partial items are not visible.)
Not using PostThreadMessage() (a few commits back) seems to fix the weird Invalid thread ID. error that happens when running package ui-based programs in wine for the first time (I assume that issue is related to the one that led to the PostThreadMessage() fix).
Added a println() to the main test window to signal that window closing has happened. This is used for ensuring that closing programs from a task switcher works as expected (that is, that the appropriate w.Closing event is triggered if an individual window is asked to be closed, and something else if an application as a whole is...).