Go to file
Pietro Gagliardi 37bc89fe52 More go fmt. 2014-06-10 11:33:53 -04:00
experiments Merged back combobox_darwin.m, rewrote it to use boundListboxArray() instead of creating a whole new object, and implemented what appears to be a fix for NSPopUpButton selection. Will delete the unneeded select(-1) code later and test again... 2014-05-28 23:46:33 -04:00
olddocs Disabled Travis.ci for now. 2014-06-06 18:59:37 -04:00
test Added Area.RepaintAll() (requested by aybabtme on the Gopher Academy Slack) and implemented it on Mac OS X. 2014-06-09 22:11:08 -04:00
tools Made adjustments to the output of windowsconstgen to please go fmt. 2014-06-10 09:46:00 -04:00
LICENSE Added license and README. 2014-02-17 18:38:50 -05:00
README.md Declared the API as it stands now stable. 2014-06-09 23:04:19 -04:00
area.go Had Area.SetSize() explicitly labelled as repainting the whole Area; made sure it does that on GTK+ (it already did on Windows and Mac). I think we're ready to declare the API as it stands now stable! 2014-06-09 22:47:45 -04:00
area_darwin.go Elaborated previous commit. 2014-06-06 23:47:48 -04:00
area_darwin.m Fixed Command key up on Mac OS X. This fix also fixes Help key down, so remove the workaround there. 2014-06-07 18:17:29 -04:00
area_unix.go Documented click event on activate behavior in the GTK+ backend. 2014-06-07 11:40:25 -04:00
area_windows.go Implemented RepaintAll() on Windows. 2014-06-09 22:26:37 -04:00
button.go Quick changes: turned "Window has been opened" to "Window has been created" since I'm going to separate creating and opening (Open() will call Create()). 2014-06-03 22:54:28 -04:00
callbacks_unix.go Fixed modality issues on the GTK+ MsgBox() changes. The system introduced here has the advantage of scaling out to all other types of dialogs. 2014-06-08 11:50:11 -04:00
checkbox.go Moved TODOs about new event signals to the future plans document. 2014-04-28 20:59:42 -04:00
combobox.go Fixed the GTK+ Combobox sizing issues for real this time. 2014-06-05 13:40:47 -04:00
combobox_darwin.m Checked to see if the previous commit worked after removing the leftover Combobox selectIndex() code; it does. Removed the dummy code from the Windows and GTK+ backends as well. 2014-05-29 04:41:07 -04:00
comctl_windows.go Resolved the ACTCTX_FLAG_SET_PROCESS_DEFAULT TODO by deciding to enable this flag for maximum safety. Also added more future plans. 2014-06-04 19:30:19 -04:00
common_windows.go Changed SetWindowLong() to SetWindowLongPtr() in the Windows backend. I forgot I already had some there :| 2014-06-07 14:50:05 -04:00
control.go Updated the documentation: Area now works on all platforms, Modifiers behavior on both left and right keys simultaneously is undefined for now, and the way to create custom Controls no longer involves embedding Area. 2014-03-30 19:57:24 -04:00
controls_windows.go Removed commented-out checkbox stuff from controls_windows.go since we'll be sending messages directly to the checkbox instead. We still have to worry about radio buttons, so I'm not merging controls_windows.go into common_windows.go just yet. 2014-05-26 22:39:30 -04:00
d32 cgo inserts -m32 automatically, so we don't need to in ./d32. 2014-03-08 17:32:56 -05:00
delegate_darwin.go Same as previous commit, but for Mac OS X now. The #cgo directives are in uitask_darwin.go. 2014-05-19 22:52:59 -04:00
delegateuitask_darwin.m Added new MsgBox() behavior on Mac OS X. Now we can finally remove MsgBox() from the TODOs! :D 2014-06-08 12:36:55 -04:00
dialog.go Made the application-modal sentinel in dialog.go non-nil to prevent weird behavior on nil Windows in program code. Thanks to xtg in the Gopher Academy Slack for corroborating. 2014-06-08 13:00:21 -04:00
dialog_darwin.go Added new MsgBox() behavior on Mac OS X. Now we can finally remove MsgBox() from the TODOs! :D 2014-06-08 12:36:55 -04:00
dialog_darwin.m Added new MsgBox() behavior on Mac OS X. Now we can finally remove MsgBox() from the TODOs! :D 2014-06-08 12:36:55 -04:00
dialog_unix.go Fixed a quick typo spotted by _7sins in irc.freenode.net/#go-nuts. 2014-06-08 15:23:54 -04:00
dialog_windows.go Implemented the new MsgBox()/MsgBoxError() behavior on Windows. 2014-06-08 08:50:52 -04:00
doc.go Cleaned up the scrollbars documentation in the Overview. 2014-06-09 22:37:43 -04:00
events_darwin.go Added Help key handling (as Insert) on Mac OS X. 2014-06-06 19:35:26 -04:00
events_notdarwin.go Finished the Area clicking stuff: formalized the behavior in documentation in area.go, pointed out that Mac OS X already behaves as expected, updated some comments, and removed the relevant TODO. 2014-05-23 23:48:17 -04:00
futureplans.md Moved the blurred Area check TODO to future plans because I'd need to find images for that; added some advice for that. 2014-06-08 01:22:38 -04:00
grid.go Resolved Grid TODOs: moved feature requests to future plans and made sure SetStretchy() doesn't leave previous stretchy controls filling by accident. 2014-04-29 10:10:28 -04:00
gtk_unix.h Moved <stdlib.h> includes in the GTK+ backend to gtk_unix.h; organized that file a bit. 2014-04-01 16:01:49 -04:00
gtkcalls_unix.go Removed some leftover debugging code from the previous few commits. 2014-06-05 13:43:31 -04:00
gtkcasts_unix.go Removed the extra #cgo directives from the Unix files. cgo collects directives from ALL files, rather than using each file's directive individually, so having them combined like this is pointless. Instead, the #cgo directives are (or is, since there's only one) in uitask_unix.go. Will do the same for Mac next; this will help since we're going to add a CFLAGS value afterward. 2014-05-19 22:32:38 -04:00
init.go Resolved command-line handling in the GTK+ backend by not doing it and documenting that we don't do it. 2014-06-02 21:25:28 -04:00
init_windows.go Changed Areas on WIndows so that they all use the same window class, rather than having one per Area. 2014-05-30 23:02:15 -04:00
label.go Properly left-aligned Labels in GTK+. Also added a note to decide on/document/verify vertical alignment of Labels. 2014-06-02 15:22:31 -04:00
lineedit.go Moved TODOs about new event signals to the future plans document. 2014-04-28 20:59:42 -04:00
listbox.go Cleaned up the scrollbars documentation in the Overview. 2014-06-09 22:37:43 -04:00
listbox_darwin.go Same as previous commit, but for Mac OS X now. The #cgo directives are in uitask_darwin.go. 2014-05-19 22:52:59 -04:00
listbox_darwin.m Fixed the whole NSApplication.h thing so now the project builds with both 10.6 and 10.8. Ugh. 2014-05-20 08:35:39 -04:00
listbox_unix.go More go fmt. 2014-06-10 11:33:53 -04:00
objc_darwin.go Same as previous commit, but for Mac OS X now. The #cgo directives are in uitask_darwin.go. 2014-05-19 22:52:59 -04:00
objc_darwin.h Added new MsgBox() behavior on Mac OS X. Now we can finally remove MsgBox() from the TODOs! :D 2014-06-08 12:36:55 -04:00
objc_darwin.m Fixed all the NSAutoreleasePool issues on Mac OS X 10.6. 2014-06-07 19:56:51 -04:00
prefsize_darwin.go More go fmt. 2014-06-10 11:33:53 -04:00
prefsize_darwin.m Set Area's preferred size in the documentation and on Windows and Mac OS X. 2014-06-06 23:03:29 -04:00
prefsize_unix.go More go fmt. 2014-06-10 11:33:53 -04:00
prefsize_windows.go More go fmt. 2014-06-10 11:23:00 -04:00
progressbar.go More go fmt. 2014-06-10 11:23:00 -04:00
stable.md Declared the API as it stands now stable. 2014-06-09 23:04:19 -04:00
stack.go More go fmt. 2014-06-10 11:12:32 -04:00
stdfont_windows.go More go fmt. 2014-06-10 11:12:32 -04:00
stdwndclass_windows.go More go fmt. 2014-06-10 11:12:32 -04:00
sysdata.go More go fmt. 2014-06-10 10:22:30 -04:00
sysdata_darwin.go More go fmt. 2014-06-10 10:22:30 -04:00
sysdata_darwin.m Checked to see if the previous commit worked after removing the leftover Combobox selectIndex() code; it does. Removed the dummy code from the Windows and GTK+ backends as well. 2014-05-29 04:41:07 -04:00
sysdata_unix.go More go fmt. 2014-06-10 10:22:30 -04:00
sysdata_windows.go More go fmt. 2014-06-10 10:14:35 -04:00
tableviewproposal.md Switched TableView proposal from <tt>...</tt> to <tt><ins>...</ins></tt> to make those parts distinct from code blocks. 2014-05-08 16:38:46 -04:00
test.sh Corrected the environment in windowsconstgen.go so that we can run it from test.sh. Phew! 2014-05-25 16:50:52 -04:00
todo.md Had Area.SetSize() explicitly labelled as repainting the whole Area; made sure it does that on GTK+ (it already did on Windows and Mac). I think we're ready to declare the API as it stands now stable! 2014-06-09 22:47:45 -04:00
uitask_darwin.go Partial go fmt. Will do the rest over the next few commits. While I'm not too happy about it, everyone else uses go fmt, and pull requests will be more convenient if I just do it. (Also do it now, because when I change the Windows backend things are going to change...) 2014-06-10 09:55:14 -04:00
uitask_unix.go Partial go fmt. Will do the rest over the next few commits. While I'm not too happy about it, everyone else uses go fmt, and pull requests will be more convenient if I just do it. (Also do it now, because when I change the Windows backend things are going to change...) 2014-06-10 09:55:14 -04:00
uitask_windows.go Partial go fmt. Will do the rest over the next few commits. While I'm not too happy about it, everyone else uses go fmt, and pull requests will be more convenient if I just do it. (Also do it now, because when I change the Windows backend things are going to change...) 2014-06-10 09:55:14 -04:00
window.go Partial go fmt. Will do the rest over the next few commits. While I'm not too happy about it, everyone else uses go fmt, and pull requests will be more convenient if I just do it. (Also do it now, because when I change the Windows backend things are going to change...) 2014-06-10 09:55:14 -04:00
zconstants_windows_386.go Made adjustments to the output of windowsconstgen to please go fmt. 2014-06-10 09:46:00 -04:00
zconstants_windows_amd64.go Made adjustments to the output of windowsconstgen to please go fmt. 2014-06-10 09:46:00 -04:00

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; see stable.md for a list of what is guaranteed to not change at the API level — for everything newer, you have been warned!
  • 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.)

Screenshots

You asked for them; here they are.

Image Description
The test program on Windows 7
The test program on Mac OS X 10.8
The test program on Ubuntu 14.04 with KDE and the oxygen-gtk theme