- Beginning to transition View types to use Rc/RefCell internally,
which should provide better guarantees about ownership on the Rust side.
This is also important for certain Objective-C side scenarios where we
may need to set an ivar after creation, which requires some level of
mutability. This may also possibly help bring down the unsafe usage,
which would be cool.
- Rewrote the Color module; this now handles system colors better, and
provides support for dynamic color creation. Supporting combinations
of dark/light/contrast is now possible with handler passed in via
`Color::dynamic`. This still has work to do in terms of some accessor
methods and such, but it works well for now. The `to_platform...`
method should be removed before v0.1.
- Added a new feature for enabling fallback color usage on older macOS
versions that don't support system colors. This may honestly never be
used, but it cost nothing to implement.
- Fixed a bug in the Autolayout wrapper where dereferencing could cause
constraints to crash at runtime.
- Support setting text color on labels.
- Support setting text color on buttons, albeit very hacky right now.
This needs to be extracted and/or cleaned up, but getting it sketched
out was important for this commit.
- Support setting a key equivalent on buttons.
- Creating a local event monitor is now possible.
- Examples updated; Calculator clone example added.
The only API breaking change in this commit from earlier commits should
be `color::rgb` needing to be `color::Color` followed by a
`Color::rgb(...)` call.
- Reconfigured subclass creation, as there was a
subtle-but-big-when-it-hit bug in the prior method where bridge
callbacks would lose context of the appropriate delegate when calling
the trait method. The new approach found in `src/foundation/class.rs`
maps and caches subclass creation, and subclasses are now more
apparent when debugging from the Objective-C side as we can carry
their intended name/usage through. Not applied to all yet, but
eventually.
- Cleaned up a number of linter warnings that had grown over time.
- Delegate traits now require an associated const `NAME`, which is used
for subclass creation.
- (macOS) Toolbars now supported setting selected items, which is
typically used in preferences screens.
- (macOS) Windows now support setting the toolbar display style. On Big
Sur, this works as intended - it's a noop on older OS's that don't
support it.
- Support for system icons for macOS preferences windows.
Still a bit to go to flesh this all out, but it's getting there - at
which point then iOS supoort can be folded in easier.
- Filesystem Save/Open panels can return PathBuf's instead of Url's,
which feels more native to Rust.
- Support for drawing into an Image context with Core Graphics.
- ListView swipe-to-reveal action support.
- Experimental ListView cell reuse support.
- Updates to QuickLook to also support PathBuf's.