Roadmap to 1.0

Components

  • Scroll view
  • Tab stack with component exposure/initialisation callback
  • Button
  • Sliders
  • Input field
  • Large text field
  • Input field click for cursor
  • Input field multi-line highlighting
  • Input field copy/paste support
  • Modal
  • Checkbox
  • Progress
  • Dropdown
  • Listbox
  • Keyboard chip
  • Context menu
  • Link?
  • Popover
  • Radio
  • Spinner?
  • Switch
  • Table (contents grid with sortable columns for complex)
  • Toast
  • Tooltip
  • List
  • Splitter element (horizontal & vertical)
  • Text splitter element
  • Menu bar

Bug fixes

  • Draw window border
  • Fix OpenGL context problems
  • Triple check refresh things?
  • Better/dynamic frame limiting - check "Event processing" in glfw website
  • Cannot access root element directly in TabWithInitialiser (root=nullptr in Layout())
  • Overdraw with scrollview
  • Child component state losses
  • Scroll bar doesn't update on init / resize
  • Floating panel with transparent backgrounds blitted multiple times

Features

  • Remove element tree from custom layout targets
  • Make another api for floating components
  • Add Prop

Graphics API

  • Abstract shaders
  • Abstract uniforms
  • Abstract drawables
  • Shaderc transpilation
  • Vulkan & Metal support

Events

  • Test keyboard events
  • Test scroll events

Async stuff

  • Timeouts
  • Timers
  • Animations

Styling

  • Themes
  • Text wrap property
  • Inline text colour
  • Replace macro styling
  • Inline hover styling
  • Size and disabled style
  • Gap property
  • Change texts from subpixel to greyscale for no fringing

Panels

  • Panel builder mode for user building layouts
  • Panel editor for locking / unlocking panels at runtime
  • Saving panel state across runs

QOL

  • Expose titlebar content api
  • Expose icon setting + program to embed api
  • Allow custom fonts
  • Image lazy-loading
  • Image load-by-buffer
  • Props
  • Click and drag scroll bar thumb

Beyond 1.0

  • Docking panels
  • Web support?
  • Mobile support?
  • Touch support
  • Expose graphics & shader api further for cross-platform custom shaders and objects
  • Video player
  • Simple 3d renderer
  • Plugin support
  • External layout script + basic language