libui/TODO.md

3.0 KiB

ultimately:

  • MAYBE readd lifetime handling/destruction blocking
  • assign control IDs on windows
    • GWL(P)_ID
    • related? [12:25] And the blue outline on those buttons [ALL clicked buttons on Windows 7] won't go away
      • I get this too
  • SWP_NOCOPYBITS to avoid button redraw issues on Windows when not in tab, but only when making resize faster
  • opposite side alignment control in uiBox
  • generate libui.lib and related files
  • make OS-specific headers generated by an IDL
  • menu item state change while the menu is visible (not in response to user action)
    • OS X: requires an [NSMenu update] call after changing state
    • Windows: requires getting current menu state when amending it in sync()
  • figure out where we should return HRESULTs
  • Windows: don't abort if a cleanup function fails?
  • drop "Page" from uiTab method names? (uiTabAppendPage() -> uiTabAppend())
  • make it so Windows API calls that do logLastError(), etc. abort whatever they're doing and not try to continue, just like wintable
  • 32-bit Mac OS X support (requires lots of code changes)
    • change the build system to be more receptive to arch changes

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)
  • note that the default action for uiWindowOnClosing() is to return 0 (keep the window open)
  • note that uiInitOptions should be initialized to zero
  • explicitly document that uiCheckboxSetChecked() and uiEntrySetText() do not fire uiCheckboxOnToggled() and uiEntryOnChanged(), respectively
  • note that uiControlResize() on a uiContainer also updates
  • note that if a menu is requested on systems with menubars on windows but no menus are defined, the result is a blank menubar, with whatever that means left up to the OS to decide
  • note that type mixing == undefined behavior
  • note that handling of multiple consecutive separators in menus, leading separators in menus, and trailing separators in menus are all implementation-defined
  • note that ContainerVisible() returns true if both user and container not hidden; container use only
  • note that if we are currently updating, QueueResize() will take effect during the CURRENT update cycle