Go to file
Pietro Gagliardi ef1b699a68 Reorganized and cleaned up the todo.md file. 2014-06-06 14:42:01 -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 Strummed up a new placeholder README in an effort to replace the existing one. 2014-06-06 10:24:45 -04:00
test Added the concept of transience to MsgBox() and MsgBoxError(). Individual implementations will come next. 2014-06-04 23:12:56 -04:00
tools Moved the standard window class (for Window) on Windows to get the sysData pointer from CreateWindowEx() and store it in the window memory instead of being given it via a closure. This will lead to having only one window class for all Windows, which will come next. Also fixed an error in windowsconstgen's output related to GetWindowLongPtr()/SetWindowLongPtr(). 2014-05-30 17:59:29 -04:00
.travis.yml Changed -qq to -y in the apt-get install line in .travis.yaml because I want to see the full details of the install. 2014-03-24 11:54:30 -04:00
LICENSE Added license and README. 2014-02-17 18:38:50 -05:00
README.md Formatting fixes in the placeholder README. 2014-06-06 10:33:14 -04:00
area.go Marked a sentence in the Area docs as not being active. 2014-06-06 10:09:18 -04:00
area_darwin.go Applied the Area events change to the Mac OS X backend, restructuring a few function signatures in the process. 2014-06-02 12:27:23 -04:00
area_darwin.m Applied the Area events change to the Mac OS X backend, restructuring a few function signatures in the process. 2014-06-02 12:27:23 -04:00
area_unix.go Removed TODOs about device coordinates in the GTK+ backend; that has been resolved. 2014-06-03 12:54:13 -04:00
area_windows.go Fixed the standard window class focus behavior on Windows from the previous commit to work. Also updated the SetFocus() call in area_windows.go to boot and removed the relevant TODO after checking both wine and Windows XP work fine. 2014-06-06 01:49:23 -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 Resolved TODOs in callbacks_unix.go. (For the returning FALSE TODO, I decided it would be safest to let event handlers propagate, as I did with Areas earlier.) 2014-06-02 22:07:50 -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 Removed TODOs about sign extension on Windows; situation resolved. 2014-06-04 19:06:16 -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 Implemented message box transience on Mac OS X. 2014-06-05 00:53:26 -04:00
dialog.go Figured out what happens if a message box is created for an invisible window, documented it was undefined (Windows and GTK+ behave reasonably but at least Windows is not documented here; Mac OS X shows a sheet attached to invisible where the titlebar should be and then considers the window closed), and added the panic() checks for uncreated Windows. 2014-06-05 03:09:02 -04:00
dialog_darwin.go Implemented message box transience on Mac OS X. 2014-06-05 00:53:26 -04:00
dialog_darwin.m Implemented message box transience on Mac OS X. 2014-06-05 00:53:26 -04:00
dialog_unix.go Implemented the new MsgBox() transience behavior on GTK+. 2014-06-05 00:24:05 -04:00
dialog_windows.go Decided not to change the default window title of a MsgBox() on Windows for now. If I change my mind, it's a documentaiton change =P 2014-06-05 11:03:18 -04:00
doc.go Updated doc.go with the MsgBox() change. 2014-06-06 10:07:34 -04:00
events_darwin.go Removed kVK_ANSI_KeypadClear from events_darwin.go; this is a holdover from early Mac keyboards that had a Clear key where Num Lock is on an IBM keyboard (for example, http://upload.wikimedia.org/wikipedia/commons/4/4e/Apple_Macintosh_Plus_Extended_Keyboard.jpg (via Psy| in irc.freenode.net/#macdev)) and is irrelevant to our usage. 2014-05-31 23:49:57 -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 Fixed the GTK+ Combobox sizing issues for real this time. 2014-06-05 13:40:47 -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 Found a method in NSArrayController via Stack Overflow which lets me suppress selection-changing behavior on NSTableView inserts; use that on Listbox in Mac OS X. This means sysData.selectIndices() and its Mac OS X implementation can (and has) gone away, clearing TODOs on Windows and Unix by extension. 2014-05-17 12:42:00 -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 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
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 Implemented message box transience on Mac OS X. 2014-06-05 00:53:26 -04:00
objc_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
prefsize_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
prefsize_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
prefsize_unix.go Removed height-for-width TODO from prefsize_unix.go after discussion with Company in irc.gimp.net/#gtk+. 2014-04-27 16:26:06 -04:00
prefsize_windows.go Added a link to the older Layout page on MSDN to prefsize_windows.go. 2014-06-04 12:29:07 -04:00
progressbar.go Resolved TODO about indeterminate ProgressBar repetition by deciding to leave it to the implementation. 2014-06-04 19:09:26 -04:00
stack.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
stdfont_windows.go Finished migrating the Windows code to using the pregenerated constants. 2014-05-25 15:23:11 -04:00
stdwndclass_windows.go Fixed the standard window class focus behavior on Windows from the previous commit to work. Also updated the SetFocus() call in area_windows.go to boot and removed the relevant TODO after checking both wine and Windows XP work fine. 2014-06-06 01:49:23 -04:00
sysdata.go 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_darwin.go 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_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 Changed Unix Area WM_ACTIVATE equivalent handling to use enter-notify-event and leave-notify-event instead of focus-in-event and focus-out-event as suggested by tristan in irc.gimp.net/#gtk+. 2014-06-01 00:16:57 -04:00
sysdata_windows.go Implemented code to save and restore control focus on Windows properly when switching away from/back to our program. It's disabled for now though because it doesn't seem to work... 2014-06-05 23:27:17 -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 Reorganized and cleaned up the todo.md file. 2014-06-06 14:42:01 -04:00
uitask_darwin.go Set up the Mac OS X build to always target Mac OS X 10.6 regardless of the host system; this is what we want and by default building on 10.8 produces binaries which won't run on 10.6. This isn't working yet, though: one enum in NSApplication.h becomes empty on 10.6... 2014-05-19 23:53:10 -04:00
uitask_unix.go Moved gtk_main() such that uitask_unix.go calls it directly via cgo. This is in preparation for the next two commits, which will remove the #cgo directives from all files except the uitask_*.go files, since they're being concatenated across files. 2014-05-19 22:18:53 -04:00
uitask_windows.go Migrated uitask_windows.go to the new string handling. 2014-06-03 10:48:21 -04:00
window.go Big change to Window: split Open()'s functionality into Create() and Open(); they no longer return errors. 2014-06-03 23:08:51 -04:00
zconstants_windows_386.go Fixed the standard window class focus behavior on Windows from the previous commit to work. Also updated the SetFocus() call in area_windows.go to boot and removed the relevant TODO after checking both wine and Windows XP work fine. 2014-06-06 01:49:23 -04:00
zconstants_windows_amd64.go Fixed the standard window class focus behavior on Windows from the previous commit to work. Also updated the SetFocus() call in area_windows.go to boot and removed the relevant TODO after checking both wine and Windows XP work fine. 2014-06-06 01:49:23 -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 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!