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