2014-02-12 09:58:05 -06:00
so I don't forget:
2014-03-06 18:47:25 -06:00
- Window.SizeToFit() or WIndow.OptimalSize() (use: `Window.SetOptimalSize())` ) for sizing a window to the control's interest
2014-02-12 09:58:05 -06:00
- Control.Show()/Control.Hide()
2014-02-13 16:04:57 -06:00
- Groupbox
2014-03-06 19:12:05 -06:00
- see if we really need to track errors on a lot of places that report errors
2014-03-07 19:47:07 -06:00
- it appears GTK+ and Cocoa both either don't provide a convenient way to grab errors or you're not supposed to; I assume you're supposed to just assume everything works... but on Windows we check errors for functions that return errors, and there's no guarantee that only certian errors will be returned...
2014-02-25 14:06:51 -06:00
- character-limited entry fields, numeric entry fields, multiline entry fields
2014-02-14 14:00:59 -06:00
- possible rename of LineEdit?
2014-02-25 14:06:51 -06:00
- especially for password fields - NewPasswordEntry()?
2014-03-03 14:47:12 -06:00
- [Windows, Mac OS X] should ListBox have a border style?
- [Windows] a different border on LineEdits?
2014-03-06 19:12:05 -06:00
- padding and spacing in Stack
2014-03-06 19:30:13 -06:00
- change Listbox constructor so that there's a separate constructor for each variant, rather than passing in parameters
2014-02-14 19:42:26 -06:00
- allow Combobox to have initial settings
2014-02-15 13:26:37 -06:00
- Combobox and Listbox insertions and deletions should allow bulk (...string)
- Combobox/Listbox.DeleteAll
- Combobox/Listbox.Select (with Listbox.Select allowing bulk)
2014-03-11 10:48:32 -05:00
- Checkbox.Check or Checkbox.SetChecked
2014-02-15 13:26:37 -06:00
- Listbox.SelectAll
2014-03-09 09:51:01 -05:00
- have Listbox.Delete() panic on invalid index; it does not yet due to the Mac OS X signaling issue mentioned under "super important"
2014-03-06 18:47:25 -06:00
- same for other methods that take indices, like the Stack and Grid stretchy methods
2014-02-17 01:55:59 -06:00
- make the Windows implementation of message boxes run on uitask
2014-02-21 10:35:50 -06:00
- ensure MsgBoxError can run if initialization failed if things change ever
2014-03-02 18:56:54 -06:00
- should Labels be selectable?
- should message box text be selectable on all platforms or only on those that make it the default?
2014-03-09 09:51:01 -05:00
- Listbox/Combobox.Index(n)
2014-03-07 14:08:01 -06:00
- Index(n) is the name used by reflect.Value; use a different one?
2014-03-09 20:03:10 -05:00
- message boxes need cleanup:
- Windows: title: titlebar; text: message box text; no such thing as secondary text
- GTK+ AND Cocoa: title: message box text; text: secondary text; nothing: titlebar
2014-03-10 10:12:27 -05:00
- change sysData.make() so it does not take the initial window text as an argument and instead have the respective Control/Window.make() call sysData.setText() expressly; this would allow me to remove the "no such concept of text" checks from the GTK+ and Mac OS X backends
2014-02-12 09:54:58 -06:00
2014-02-16 14:55:51 -06:00
important things:
2014-03-01 14:23:49 -06:00
- because the main event loop is not called if initialization fails, it is presently impossible for MsgBoxError() to work if UI initialization fails; this basically means we cannot allow initializiation to fail on Mac OS X if we want to be able to report UI init failures to the user with one
2014-03-03 16:44:03 -06:00
- figure out where to auto-place windows in Cocoa (also window coordinates are still not flipped properly so (0,0) on screen is the bottom-left)
2014-03-06 18:47:25 -06:00
- also provide a method to center windows; Cocoa provides one for us but
2014-03-01 21:31:28 -06:00
- I think Cocoa NSButton text is not vertically aligned properly...?
2014-03-09 10:33:05 -05:00
- and listbox item text is too low?
2014-03-06 18:47:25 -06:00
- NSPopUpButton does allow no initial selection ([b setSelectedIndex:-1]); use it
2014-03-07 17:33:51 -06:00
- need to use it /after/ adding initial items, otherwise it won't work
2014-03-06 18:47:25 -06:00
- find out if I can do the same with the ListBoxes
2014-03-02 17:38:45 -06:00
- NSComboBox scans the entered text to see if it matches one of the items and returns the index of that item if it does; find out how to suppress this so that it returns -1 unless the item was chosen from the list (like the other platforms)
2014-03-03 13:37:16 -06:00
- some Cocoa controls don't seem to resize correctly: Buttons have space around the edges and don't satisfy stretchiness
2014-03-06 18:47:25 -06:00
- there's no GTK+ or Cocoa error handling whatsoever; we need to figure out how it works
- I know how Cocoa error handling works: it uses Cocoa exceptions; need to figure out how to catch and handle them somehow
- make sure GTK+ documentation version point differences (x in 4.3.x) don't matter
2014-02-24 13:56:11 -06:00
- button sizes and LineEdit sizes on Windows seem too big; Comboboxes have margins
2014-03-03 13:39:33 -06:00
- Cocoa has similar margining issues (like on Comboboxes)
2014-02-24 13:56:11 -06:00
- sometimes the size of the drop-down part of a Combobox becomes 0 or 1 or some other impossibly small value on Windows
2014-03-01 03:46:42 -06:00
- make gcc (Unix)/clang (Mac OS X) pedantic about warnings/errors; also -Werror
2014-03-03 13:57:20 -06:00
- make sure scrollbars in Listbox work identically on all platforms (specifically the existence and autohiding of both horizontal and vertical scrollbars)
2014-03-09 09:51:01 -05:00
- pin down this behavior; also note non-editability
2014-03-06 21:01:44 -06:00
- GTK+ windows cannot be resized smaller than their controls's current sizes in their current positions; find out how to overrule that so they can be freely resized
2014-02-16 14:55:51 -06:00
2014-02-12 13:15:09 -06:00
super ultra important things:
- the windows build appears to be unstable:
2014-03-08 16:30:34 -06:00
- 64-bit crashes in malloc in wine with heap corruption warnings aplenty during DLL loading; in windows 7 it works fine
- 32-bit: it works, but if I save the class name converted to UTF-16 beforehand, wine indicates that the class name is replaced with the window title, so something there is wrong...
2014-02-15 13:03:46 -06:00
- handle in-library panics (internal errors) by reporting them to the user
2014-02-16 17:41:29 -06:00
- david wendt is telling me he's getting frequent crashes on his end with the GTK+ amd64 build...
2014-02-24 12:26:04 -06:00
TODO re-evaluate; I think I fixed them all ages ago now
- occasionally I get
panic: error sending message to message loop to call function: Invalid thread ID.
when starting up the windows/386 build; race in ui()/msgloop()?
2014-03-06 18:47:25 -06:00
- happens the first time I run a new build in wine; also if my computer is running too slowly when running in wine
2014-03-07 14:08:01 -06:00
- GTK+: stderr is flooded with
```
(test:17575): Gdk-CRITICAL ** : gdk_device_ungrab: assertion 'GDK_IS_DEVICE (device)' failed
(test:17575): Gtk-CRITICAL ** : gtk_device_grab_remove: assertion 'GDK_IS_DEVICE (device)' failed
```
figure out why
2014-03-09 20:43:43 -05:00
- the user can still [NSApp terminate:] from the Dock icon, bypassing Go itself
- ideally we need a QuitItem() function for this case if/when we add menus
2014-02-12 13:15:09 -06:00
2014-02-12 10:34:10 -06:00
important things:
2014-02-15 12:09:51 -06:00
- make specific wording in documentation consistent (make/create, etc.)
2014-03-07 18:28:25 -06:00
- document minor details like wha thappens on specific events so that they are guaranteed to work the same on all platforms (are there any left?)
2014-03-07 17:33:51 -06:00
- make passing of parameters and type conversions of parameters to uitask on Windows consistent: explicit _WPARAM(xxx)/_LPARAM(xxx)/uintptr(xxx), for example
- do this for type signatures in exported functions: (err error) or just error?
2014-03-08 16:30:34 -06:00
- do this for the names of GTK+ helper functions (gtkXXX or gXXX)
2014-02-12 10:34:10 -06:00
2014-02-12 09:54:58 -06:00
far off:
- localization
2014-02-12 10:34:36 -06:00
- strip unused constants from the Windows files
- combine more Windows files; rename some?
2014-03-03 14:37:02 -06:00
- tab stops
2014-02-13 16:04:57 -06:00
maybe:
- rename Stack to Box?
2014-02-15 13:26:37 -06:00
- make Combobox and Listbox satisfy sort.Interface?
2014-02-24 23:34:21 -06:00
- indeterminate progress bars (not supported on Windows 2000)
2014-03-07 18:28:25 -06:00
- should a noneditable Combobox be allowed to return to unselected mode by the user?
2014-03-09 20:03:10 -05:00
- since all events are dispatched without blocking uitask, don't bother requiring explicit dispatch? remove ui.Event() and make Window.Closing initialized by default; if we don't listen on the channel, nothing will happen