Move the reconciler into the lifecycle crate, so that we can (properly) support state changes. Wrap the reconciliation phase in a RenderEngine, which root-level objects (windows, etc) can subscribe to and interface with. Migrate a few things relating to themes out of alchemy core and into styles, because the reconciliation phase requires them and they fit well enough there... solving a circular dependency.

This commit is contained in:
Ryan McGrath 2019-05-26 00:27:07 -07:00
parent f1cb5fea93
commit 6833e39d52
No known key found for this signature in database
GPG key ID: 811674B62B666830
16 changed files with 57 additions and 1098 deletions

View file

@ -69,9 +69,9 @@ pub fn styles(input: TokenStream) -> TokenStream {
body.extend(quote!(styles.insert(#key, vec![#stream]);))
}
quote!(alchemy::theme::StyleSheet::new({
use alchemy::theme::styles::*;
use alchemy::theme::color::Color;
quote!(alchemy::StyleSheet::new({
use alchemy::style_attributes::*;
use alchemy::Color;
let mut styles = std::collections::HashMap::new();
#body
styles