libui/TODO.md

78 lines
4.5 KiB
Markdown
Raw Normal View History

2015-04-11 17:24:53 -05:00
- 32-bit Mac OS X support (requires lots of code changes)
- add a test for hidden controls when a window is shown
2015-04-15 22:14:36 -05:00
- SWP_NOCOPYBITS (or was it WS_CLIPCHILDREN?)
2015-04-12 11:59:39 -05:00
- 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 onDestroy/destroy naming
2015-04-29 18:20:46 -05:00
- implement lifetiming on Windows
2015-04-19 10:42:10 -05:00
- forbid free(NULL) to check for bugs
2015-04-26 18:48:12 -05:00
- opposite side alignment control in uiBox
2015-04-29 18:20:46 -05:00
- disabling containers on wine doesn't redraw children as disabled
- test on real windows
- collapse multiple consecutive menu separators?
2015-04-30 16:34:15 -05:00
- including for quit/preferences/about?
- or not even have separators there?
- in which case, hide leading or trailing separators?
2015-04-30 17:32:36 -05:00
- 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
2015-04-30 18:29:19 -05:00
- rename newcontrol.[cm] to control.[cm] or something else?
- use _UI_EXPORT on OS-specific functions
- make their headers generated by an IDL
2015-04-30 22:28:42 -05:00
- 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
2015-05-01 09:11:22 -05:00
- 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?)
2015-05-02 13:58:29 -05:00
- 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
2015-05-02 20:57:57 -05:00
- menu item state change while the menu is visible (not in response to user action)
2015-05-03 16:45:12 -05:00
- OS X: requires an [NSMenu update] call after changing state
2015-05-06 17:56:12 -05:00
- Windows: requires getting current menu state when amending it in sync()
2015-05-03 09:21:36 -05:00
- figure out where we should return HRESULTs
- Windows: don't abort if a cleanup function fails?
2015-05-03 12:47:03 -05:00
- 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())
2015-05-03 14:56:42 -05:00
- 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
- release OS X properties in dealloc
- switch away from properties or figure out what incantation is necessary for 32-bit
- figure out strong/weak vs assign/copy/retain
- figure out what to do in OS X terminate:
2015-05-04 16:39:50 -05:00
- clean up bin handling
- is binSetOSParent() even needed?
2015-05-04 18:56:06 -05:00
- readd the allocation tracking as just a list of pointers
- add a final cleanup function (uiUninit() or uiCleanup())
2015-05-05 23:54:57 -05:00
- whenever a list of things is destroyed, each successive item must be removed as it is destroyed, otherwise we might wind up in a situation where we access items after they're freed
- make the name of the variable to refer to a single tab page consistent (already decided to make them all `page`)
- make sure uiEntryOnChanged() is not triggered when calling uiEntrySetText()
- clean up windows resizing logic
- make it so that only top-level window resizes trigger an update; container resizes do not update
- windows resizing logic is simply not comprehensive enough (no null resizes allowed) to do things
- we control resizes of all children so we can reliably update after a resize
- we already need to do this in uiContainer :/
2015-05-07 13:46:37 -05:00
- make it so Windows API calls that do logLastError(), etc. abort whatever they're doing and not try to continue, just like wintable
2015-04-10 13:31:16 -05:00
ultimately:
2015-04-15 22:14:36 -05:00
- add some sort of runtime type checking
2015-04-30 12:31:06 -05:00
- MAYBE readd lifetime handling/destruction blocking
- figure out how to integrate leak checking into the source tree
2015-05-07 14:12:28 -05:00
- 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
notes to self
- explicitly document label position at top-left corner
- mark that uiControlShow() on a uiWindow() will bring to front and give keyboard focus because of OS X
- make sure ShowWindow() is sufficient for zorder on Windows
- document that you can't use InsertBefore functions to insert before a nonexistent index (that includes if an array is empty)
- reconsider this, as the pointer array code does work with the first invalid index...
- we would need to test everything else with it
- note that uiTabInsertPageBefore() does NOT change the current tab page (it may change its index if inserting before the current page)