another TODO: capture support in Area
another TODO: intptr_t -> intmax_t everywhere
another TODO: https://msdn.microsoft.com/en-us/library/dd162593%28v=vs.85%29.aspx?
another TODO: https://msdn.microsoft.com/en-us/library/windows/desktop/ms646275%28v=vs.85%29.aspx ?
another TODO: use MapWindowRect() instead of ScreenToClient()?

mac os x
	- investigate [NSWindow allowsToolTipsWhenApplicationIsInactive] to see what we should set it to

Table
	- with our custom Windows Table we no longer really need image lists...
		- TODO what about icon views with groups?

windows
	- WM_WININICHANGED, etc. (TODO get a full list) causing size recomputations
	- check +, =, and - key handling for checkboxes
	- Area and sharedWndProc(): http://blogs.msdn.com/b/oldnewthing/archive/2006/01/03/508694.aspx
	- probably not necessary but http://blogs.msdn.com/b/aaron_margosis/archive/2006/08/07/luabuglight.aspx
	- handle WM_PRINTCLIENT in Area
	- merge uses of SetScrollInfo() in Area to avoid potential weirdness

C interop
	- substitute intmax_t and uintmax_t for all uses of intptr_t and uintptr_t

mac os x sizing is now completely broken
	- need to catch window initial sizes?
	- unrelated: https://files.slack.com/files-pri/T029RQSE6-F0321TX9B/pasted_image_at_2014_11_23_12_35_pm.png com.apple.main-thread

password fields: caps lock warnings

tab on windows
	- windows xp: weird redraw issues on the bottom right corner of the first tab
tab, group, windows on windows
	- all platforms: only resize when the size changed
	- all platforms: redrawing issue on resizes

mac os x
	Textbox
		refuse first responder
		Textbox does not work at all
	sizing
		things can get cut off (top of NSStepper) with alignment rect based positioning...

new control stuff
	Tab, Group
		- Tab needs Margined

more flexible sizing determination
	textfield should have a method that allows control over the preferred number of characters, for sizing purposes

Multiline text fields and standalone labels
	for the Form layout

Group
	Mac OS X: NSBox
		container_darwin.m: figure out if our setFrameSize: thing applies to resizing the groupbox as well

Control
	Enable()
	Disable()

Table
	refresh only selected rows of view to avoid flicker (especially on Windows)
	add functions for header manipulation
	background color
	column titles

Tab
	// [TODO if each tab of your Tab is going to have the same content Controls, then use LikeTab instead, to conserve resources]
		// probably not a good idea
	Delete()
		// Delete removes the given tab.
		// It panics if index is out of range.
		// After Delete(), the effect of accessing the Control of the deleted tab or any of its children is undefned. [TODO reword?]
	investigate close buttons (especially for LikeTab)
		LikeTab is probably going to have to be a custom control
			definitely on OS X?

Area
	keyboard scrolling
	OpenTextAreaAt() to allow editing of text blocks from within Areas (only after I add TextArea; it will use TextAreas themselves, rather than providing its own)
	OpenTextFieldAt(): more platform-specific finished editing options; escape key for cancelling too?
	bounds checking in Select()
	DPI()

Tree
	Mac OS X: make sure newScrollView() has the correct parameters for Table and Tree (and that Area has the appropriate ones from both)

TextArea
	Mac OS X: be sure to call disableAutocorrect()

Mac OS X
	label alignment
		// in the other case, the most correct thing would be for Label to be aligned to the alignment rect, but I can't get this working, and it looks fine as it is anyway
	other controls
		same rules? checkboxes seem damning...
	ok in general
		spacing applies to alignment rects
			will conflict with Stack/Grid precalculation
			unless we resize the control and move it around to suit
		Tabs seem to have differnt margin rules
			need to check padding rules within Tabs
		text alignment (think labels and checkboxes) may be a perpetual problem though
	activateIgnoringOtherApps: and command line programs: evaluate just how much it will matter
		http://stackoverflow.com/a/25318870/3408572
	use the undocumented _CFRunLoopSetCurrent() API to drop the stupid "must run on the man thread" restriction

TextField
	figure out numerics because you CAN paste into numeric boxes on Windows and GTK+ has no built-in number validator as far as I know
		will likely just use Invalid()

Stack, SimpleGrid, Grid
	method calls should trigger re-layout of windows
default buttons
	figure out how they interact with Areas (especially on GTK+, where GtkEntry somehow has special handling for this)

in general
	new moving stack and future moving heap make package ui a pain in general
		issue 8310: watch for changes
	Combobox/Listbox
		Select() for selecting a row, like in Table

dialog boxes
	find out if Stop has an effect before a dialog box function returns
	our solution for common dialogs is rather heavyweight and doesn't work for user-created dialogs
		foreign events are a problem
	do what raymond chen suggested

so I don't forget, some TODOs:
windows
	- Area isn't transparent
		- hard: has to be excluded from scrolling
	- tab order is backwards
	- extra space on first column of all Tables on real Windows
	- fine-tune Table checkbox behavior (especially with regards to selection)
	- open dialog, resize small window, hscroll size area, double click file -> stack points in no man's land (yay attached threads?)
		- uitask pointer bug again?
	- groupbox line behind groupbox text
	- scrolling edit controls in Areas back into view don't cause redraw
	- need to figure out the WM_MOUSELEAVE tango (see mergeback/table_mouseleave_windows.c)
		- won't be an issue once I rewrite Table completely
	- tell wine that WM_CTLCOLOR*** doesn't get sent early ?????
		- definitely tell wine that the tab control responds to WM_PRINTCLIENT
	- don't let empty Tabs be tab stops
gtk+
	- Area: figure out how Enter is processed in Entry
		https://git.gnome.org/browse/gtk+/tree/gtk/gtkwindow.c#n1229
	- Table: figure out how to allow empty selection by clicking in an empty area
	- After applying the AreaHandler.Key() change, -small crashes in 3.10/distribution but not 3.14/jhbuild
		- will need to install 14.04 somewhere for this
mac os x
	- http://stackoverflow.com/questions/25558728/how-can-i-be-notified-when-a-control-becomes-key-i-want-t-o-have-my-custom-warn/25562783?noredirect=1#comment39949908_25562783
gtk+, windows
	- Area: keyboard scrolling
gtk+, mac os x
	- figure out how dialogs and Areas work together
		- once that is done, document the behavior of Areas
all
	- rename Selected to Selection?
