1
0
Fork 0
zenolith/README.md

75 lines
2 KiB
Markdown

![Logo](assets/logo.svg)
# Zenolith
Zenolith is my attempt at a retained-mode, platform-agnostic, zig-native GUI engine.
**[Join the Matrix room here!](https://matrix.to/#/#zenolith:mzte.de)**
Warning: Zenolith is in an extremely early stage! Many important features such as text editing
are not yet implemented. Expect breaking changes!
## Attention GitHub users!
Zenolith is mirrored on GitHub to make it easier to discover, however, this mirror is read-only!
Do not open issues or pull requests on GitHub!
All development happens on [MZTE Git](https://git.mzte.de/zenolith/zenolith).
## Contributing
Pull requests are always welcome! If you'd like to fix a bug, improve documentation or implement
a feature on the TODO list below, go ahead!
If you'd like to suggest a new feature or design change, please open an issue first to discuss it!
**All commits must follow [Conventional Commits](https://www.conventionalcommits.org/)!**
## TODO
- [x] Painter API
- [x] Rectangles
- [x] Textures
- [x] Text
- [x] Multi-Color chunks
- [x] Multi-Font chunks
- [ ] Triangles
- [ ] Matrix Transformations?
- [ ] Drawing of partial widgets
- [ ] stencils?
- [x] Widgets
- [x] Box (FlowBox-like algorithm)
- [x] Button
- [x] Label
- [x] Word Wrapping
- [x] Character Wrapping
- [ ] Ellipsization
- [ ] Text Edit
- [ ] Single Line
- [ ] Multi Line
- [ ] Tabbed Pane
- [ ] Split Pane
- [ ] Scrolled Pane
- [x] Focus System
- [x] Theming
- [x] Built-in themes
- [ ] Layout overflow handling
- [x] Logo
- [x] Treevents (Tree-Bound, downwards events)
- [x] Backevents (Tree-Bound, upwards events)
- [x] Platform events (Platform event loop events)
- [x] Wrap Backevents
- [x] Attreebutes (Tree-Bound, inhereted widget properties)
- [ ] Documentation
- [x] In-Code
- [ ] Book
- [ ] Examples
- [ ] CI/CD
- [x] [SDL2 Backend](https://git.mzte.de/zenolith/zenolith-sdl2)
- [ ] Mach Backend
- [ ] TUI Backend
- [ ] WASM Backend
- [ ] Lazy rendering of subtrees
## Gallery
![Early Test GUI](assets/early-test-gui.png)