cacao/examples/todos_list
Esteban Borai 399600d443 fix: 'static lifetime elision for examples
Takes advantage of lifetime elision on some examples where the
rule applies.

Refer: https://doc.rust-lang.org/reference/lifetime-elision.html#static-lifetime-elision
2022-08-25 22:17:52 -04:00
..
add fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
preferences fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
storage fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
todos fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
app.rs fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
main.rs Run cargo fmt 2022-07-15 16:14:02 +02:00
menu.rs fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00
README.md Add a (useful) example: a todo list. 2021-02-07 23:37:25 -08:00
windows.rs fix: 'static lifetime elision for examples 2022-08-25 22:17:52 -04:00

Tasks Example

This example implements a "full featured" macOS app, completely in Rust. Notably, it showcases the following:

  • Working menu(s), with dispatchable actions.
  • A cached, reusable ListView.
    • Cell configuration and styling.
    • Row actions: complete a task, mark a task as incomplete.
    • Basic animation support.
    • Self-sizing rows based on autolayout.
  • Custom widget composition (see preferences/toggle_option_view.rs.
  • Multiple windows.
  • Toolbars per-window.
  • Button and Toolbar Items, with actions.
  • Running a window as a modal sheet.
  • Autolayout to handle UI across the board.
  • Message dispatch (a bit jank, but hey, that's fine for now).
  • Standard "Preferences" screens
    • A general and advanced pane, with pane selection.
    • Looks correct on both Big Sur, as well as Catalina and earlier.

While the Cacao API is still subject to changes and revisions, this hopefully illustrates what's possible with everything as it currently exists, and provides an entry point for outside contributors to get their feet wet.