- Added basic animation support, via NSAnimationContext proxy objects.
These can be used to animate layout constraints and alpha values,
currently.
- Fixed a bug in ListView where the underlying NSTableView would not
redraw the full correct virtual height in some conditions.
- Added safe layout guide support to some views.
- Added a new trait to buffer ObjC object access for view and control
types. This is the supertrait of the Layout and Control traits.
- Added a Control trait, which implements various NSControl pieces.
- Added a Select control, which is a Select-ish HTML dropdown lookalike.
- Added NSURL support, which is one of the few types to expose here.
- Filesystem and pasteboard types now work with NSURLs. Users who need
pathbufs can use the provided conversion method on NSURL.
- Fixed a bug where some Window and ViewController types could wind up
in a double-init scenario.
Feature flags that clash are no fun. This reworks a few things so that
docs can properly build with all feature flags at once and note their
support.
Also adds a supported table to the README for ease of discovery.
- Changes internal target_os flags to be feature flags; macOS is now
appkit, and iOS/tvOS are now uikit. This enables platforms that are
not Apple-specific platforms that use frameworks to be compiled for.
- Updates the examples to handle closing/quitting better.
- Corrects `feature` -> `target_os` checks.
- Updates the old iOS scene delegate pieces to use the new class
structure.
- Bundles in an iOS demo app.
- Blocks off most things that should not even attempt to compile for
iOS.
- Adds a new `ObjcProperty` type, which wraps our Objective-C objects in
a Rust-backed Rc/Refcell combo. This in general makes understanding
reference counting/storage more digestable when reading through the
codebase and leans more on Rust to do its thing than the Objective-C
runtime.
- Most widgets that need to implement `Layout` now only need to provide
a slot for running a handler with the underlying node.
- Further documentation work ongoing.
- Basic support for `AttributedString` type.
- `Debug` implementations across the board to ease debugging issues.
- Methods that take `Color` and `Font` types now accept an `AsRef` to
make implementing less of a headache.
- Cleanup of the `utils` module.
- 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.
- Added support for Image
- Added a QuickLook feature, to enable thumbnail generation.
- Added support for NSButton.
- Fixed a bug where App activation under Big Sur would leave menus
without the ability to be used.
- Added the ability for Buttons and ToolbarItems to execute callbacks.
- Added support for Labels and TextFields.
- Added support for MenuItems to have callbacks as well.
- Preliminary ListView support; you have to cache your ListViewRow items
yourself for the time being, but it works.
- Animation support for ListView operations.
- Support for ScrollViews.
- Helpers for dispatching actions to the main thread (for UI work).
- Updated the Dispatcher trait to make thread handling simpler.
- Basic font support.