The GUI engine to end them all!
LordMZTE 431cd4adf7
feat: implement stencils
closes #13
2024-02-19 22:40:17 +01:00
assets feat: add icon 2023-11-26 14:34:54 +01:00
src feat: implement stencils 2024-02-19 22:40:17 +01:00
.gitignore init 2023-11-26 14:01:22 +01:00
LICENSE chore: relicense under GPL-3.0 2023-11-30 07:11:03 +01:00
README.md feat: implement builtin themes and make Labels use attreebutes 2024-01-13 15:04:08 +01:00
build.zig fix: upstream build API changes 2024-01-07 15:47:30 +01:00
build.zig.zon fix: upstream build API changes 2024-01-07 15:47:30 +01:00

README.md

Logo

Zenolith

Zenolith is my attempt at a retained-mode, platform-agnostic, zig-native GUI engine.

Join the Matrix room here!

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.

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!

TODO

  • Painter API
    • Rectangles
    • Textures
    • Text
      • Multi-Color chunks
      • Multi-Font chunks
    • Triangles
    • Matrix Transformations?
    • Drawing of partial widgets
      • stencils?
  • Widgets
    • Box (FlowBox-like algorithm)
    • Button
    • Label
      • Word Wrapping
      • Character Wrapping
      • Ellipsization
    • Text Edit
      • Single Line
      • Multi Line
    • Tabbed Pane
    • Split Pane
    • Scrolled Pane
  • Focus System
  • Theming
    • Built-in themes
  • Layout overflow handling
  • Logo
  • Treevents (Tree-Bound, downwards events)
  • Backevents (Tree-Bound, upwards events)
  • Platform events (Platform event loop events)
    • Wrap Backevents
  • Attreebutes (Tree-Bound, inhereted widget properties)
  • Documentation
    • In-Code
    • Book
    • Examples
  • CI/CD
  • SDL2 Backend
  • Mach Backend
  • TUI Backend
  • WASM Backend
  • Lazy rendering of subtrees

Early Test GUI