* Rename classic `xilem` to `xilem_classic` and the new `xilem_masonry`
to `xilem`.
No directory structure changes yet to avoid merge conflicts before
RustNL.
* Base common dependencies on workspace dependencies.
* Bump `masonry` version to `0.2.0`.
* Remove some legacy docs.rs configuration inherited from Druid/Glazier
that is no longer needed.
* Unify ordering of properties.
* Create a minimal xilem_masonry
* Add a first draft of view sequences
* Implement a flex view
* Fix clippy
Some of these suggestions are kind of bad
but that's by-the-by
* Update CI to 1.77
* Skip masonry docs in CI
* Clippy, again
* Fix clippy
* Skip render snapshot tests
* Skip testing which needs rendering on CI
* Add tuple sequences
* Address review comments and clippy
`test-log` is used with logging to set up `env_logger` for each
test and was only used in the box constraints code. This code
doesn't actually use logging, so this wasn't doing much.
* Update vello and parley deps...
... and everything else, apparently. This pushes the new font code changes through the ecosystem.
Brings everything into sync and should put us in a good place to start releasing.
This works as is but depends on a vello commit that is still under review: linebender/vello#425 should land first and this should be updated with the new git rev before merging.
* fmt :(
* update git revs
* Merged xilem_svg into xilem_html
* Renamed xilem_html to xilem_web and removed xilem_svg
* xilem_web: factor pointer to root, as it can be used for all Elements and refactor slightly
* Rename example
* xilem_web: Make BoxedView public
* Rename cx.add_new_attribute_to_current_element -> add_attr_to_element and IntoAttributeValue::into_attribute_value -> IntoAttributeValue::into_attr_value
* Add the `fill` and `stroke` attribute to the `g` element
* Fix text widget layout invalidation
* Gitignore .DS_Store files
* Add downcast_ref method to Pod
* Add compute_max_intrinsic method to Pod
Implement compute_max_intrinsic for Box<dyn AnyWidget>
* Add TaffyLayout view and widget
* Add background_color support to TaffyLayout
* Add taffy example
* Added all MathML elements
* xilem_html: Add all SVG elements and DOM interfaces, and an example using MathML and raw SVG
* Cargo fmt
* xilem_html: Reduce boilerplate in elements, by adding a new macro match arm
* xilem_html mathml_svg example: Remove unnecessary stuff in index.html
* xilem_html: Use `mod`s for each element namespace (html, mathml, svg)
* xilem_html: Introduce DOM interface traits to make per DOM element typing possible and flexible
* Cleanup a little bit (remove artifacts from refactor)
* Use separate sealed interfaces to avoid blanket trait impl collisions
* Add generic params T and A to event views and Attr via PhantomData, to avoid inference issues with composed types
* xilem_html: Refactor DOM interface macros
* Add ancestor *and* descendent composable macros
* Added a macro to correctly and conveniently implement dom interfaces for interface restricted Views, this is used currently for the Attr view and the event views
* xilem_html: Add namespace to element generation and refactor element/attribute logic into separate functions
* xilem_html: Remove unnecessary features
* xilem_html: Implement DOM interface traits for Adapt and AdaptState
* xilem_html: Refactor OneOf views
* Eliminate associated trait bound for the View, for easier use
* Add additional OneSeqOf view sequences, to avoid removing the ViewMarker super trait bound on Element
* implement all dom interfaces for the OneOf views
* xilem_html: Reorder generic type parameters in composing views such as `Attr`
* Make xilem_svg into a library
Instead of having the demo app hardcoded, make it a library with a web_examples folder, just like its xilem_html sibling. This patch doesn't change the example or any functionality.
* Migrate KurboShape to ViewExt
Exports a `ViewExt` trait, and wires up types so that type inference can flow through the methods on this trait. That removes the hacky `KurboShape` workaround.
* clippy
* Add fill and stroke
Supports very basic fill and stroke (solid colors, stroke width but no other style parameters).
* rustfmt
* Address review feedback
Fix some cut'n'paste errors, and update README slightly.
The change to `app_main.rs` matches a similar change made in the
Glazier examples.
Also, since we now have both x11 and wayland backends on some
platforms, we need to make sure that we create the application
prior to creating the menu. This will be improved in future
versions of Glazier.
This minimally updates to the PointerEvent API within Glazier
as that has replaced the MouseEvent API.
* Bump vello (and wgpu versions)
Updates xilem to the latest vello. Also bumps wgpu to 0.17.0.
This should enable CFF/CFF2 support.
* rev vello (again)
* fix deps
* update rev for merged vello PR
Since this is going away in the underlying glazier, we can remove
it now to make sure that everyone is aware. The default is `x11`,
so this should have little impact.
`test-log` and `env_logger` are dev dependencies, so should be marked
as such.
Other dependencies weren't used directly and have been removed from
being direct dependencies of `xilem`:
* `bytemuck`
* `png`
* `rand`
* `raw-window-handle`
* `roxmltree`
I'm doing all the work in a single commit so it's easier to rebase.
Below is a list of the individual changes I did
- Squash prev commits
- Remove top-level action handler (use Adapt instead).
- Type events in the same way as elements (could also do attributes the
same)
- Allow users to avoid compiling the typed html/attributes/events
- Use more specific types for mouse events from web_sys
- change "click" from PointerEvent to MouseEvent (PointerEvent caused a
panic on `dyn_into().unwrap()`)
Turn on the AccessKit dependency and also update to more recent glazier and Vello versions.
Also follow new policy of pinning git dependencies to avoid future breakage.
Removes the `piet-scene` dependency and adds `vello`. Updates all imports for the new crate name. This leaves the git reference as linebender/piet-gpu for now. We can change that to vello in this PR (after the repo is renamed) or in a subsequent one.