libui/TODO.md

60 lines
2.9 KiB
Markdown

- change all private names away from uiXxxx and uipXxxx
- make it so Windows API calls that do logLastError(), etc. abort whatever they're doing and not try to continue, just like wintable
- figure out what to cleanup in darwin terminate:
- delegate
- deleted objects view
- assign control IDs on windows
- GWL(P)_ID
- related? [12:25] <ZeroOne> And the blue outline on those buttons [ALL clicked buttons on Windows 7] won't go away
- I get this too
- make sure all terminology is consistent
- 32-bit Mac OS X support (requires lots of code changes)
- add a test for hidden controls when a window is shown
- SWP_NOCOPYBITS (or was it WS_CLIPCHILDREN?)
- buttons not in tab get drawover issues
- buttons in tab without transparent drawing code get copied into the label when stack shown and rehidden
- settle differences between intmax_t and uintmax_t
- settle onDestroy/destroy naming
- implement lifetiming on Windows
- forbid free(NULL) to check for bugs
- opposite side alignment control in uiBox
- disabling containers on wine doesn't redraw children as disabled
- test on real windows
- collapse multiple consecutive menu separators?
- including for quit/preferences/about?
- or not even have separators there?
- in which case, hide leading or trailing separators?
- write an array.c for uiBox, uiGrid, and the Windows backend
- it'd just be a clone of GArray from GLib
- add the visibility stuff to the Windows makefile
- figure out visibility on mac os x
- hide command lines in the makefile
- rename newcontrol.[cm] to control.[cm] or something else?
- use _UI_EXPORT on OS-specific functions
- make their headers generated by an IDL
- make sure complain()s don't have \n at the end; add one on each platform
- add a `[libui]` to the beginning of the message
- figure out what to do on Windows and GTK+ if we don't have menus but the user wants a menubar (zero-height widget? don't bother? complain?)
- bin.c
- find a way to consolidate the duplicate code across OSs
- find a way to move the has parent check at the beginning of binDestroy()
- determine whether or not margins count in preferredSize() when there is no main control
- menu item state change while the menu is visible (not in response to user action)
- figure out where we should return HRESULTs
- Windows: don't abort if a cleanup function fails?
- should uiWindowOnClosing() really return an int?
- if so, should the default return 0 instead of 1?
- note that uiInitOptions should be initialized to zero
- have a cbSize member
- drop "Page" from uiTab method names? (uiTabAppendPage() -> uiTabAppend())
- override dock menu quit item to act like our app menu quit item
- consider calling setAppleMenu: for the application menu; it doesn't seem to make much of a difference but
ultimately:
- add some sort of runtime type checking
- MAYBE readd lifetime handling/destruction blocking
- figure out how to integrate leak checking into the source tree
notes to self
- explicitly document label position at top-left corner