fmt
This commit is contained in:
parent
f5908ef0d5
commit
ca34a58760
16
src/lib.rs
16
src/lib.rs
|
@ -8,13 +8,13 @@ pub mod parser;
|
|||
pub mod widget_builders;
|
||||
use crate::parser::QML;
|
||||
use crate::parser::{parse_qml, Value};
|
||||
use crate::widget_builders::{QmlWidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{QmlContext, QmlWidgetBuilder};
|
||||
use evmap::{ReadHandle, WriteHandle};
|
||||
|
||||
use rand::Rng;
|
||||
use std::borrow::BorrowMut;
|
||||
use std::collections::VecDeque;
|
||||
use std::sync::mpsc;
|
||||
use rand::Rng;
|
||||
|
||||
#[macro_use]
|
||||
extern crate pest_derive;
|
||||
|
@ -40,8 +40,10 @@ impl Widget for MainViewState {
|
|||
|
||||
let (r, w) = evmap::new();
|
||||
|
||||
|
||||
let mut qmlctx = QmlContext{ indexes: vec![], code: Default::default() };
|
||||
let mut qmlctx = QmlContext {
|
||||
indexes: vec![],
|
||||
code: Default::default(),
|
||||
};
|
||||
let this = QmlWidgetBuilder::new().build(widget, 0, 0, top_level[0].0.clone(), top_level[0].1.clone(), ctx, qmlctx.borrow_mut()); //render_ctx(widget, ctx, &top_level, 0, 0, ids.borrow_mut()).unwrap();
|
||||
ctx.register_state(
|
||||
this,
|
||||
|
@ -124,19 +126,16 @@ impl State for MVState {
|
|||
fn update(&mut self, _registry: &mut Registry, ctx: &mut Context) {
|
||||
match self.value_map.1.borrow_mut() {
|
||||
Some(w) => {
|
||||
|
||||
self.engine.register_fn("rand_opacity", move || -> (f32) {
|
||||
let mut rng = rand::thread_rng();
|
||||
rng.gen_range(0.0,1.0) as f32
|
||||
rng.gen_range(0.0, 1.0) as f32
|
||||
});
|
||||
|
||||
for ((entity, property), code) in self.ids.code.iter() {
|
||||
|
||||
let result = self.engine.eval::<(f32)>(code.as_str());
|
||||
let point = result.unwrap();
|
||||
println!("{}.{} = {} {:?}", entity, property, code, point);
|
||||
ctx.child(entity.as_str()).set::<f32>(property, point);
|
||||
|
||||
}
|
||||
|
||||
for id in self.ids.indexes.iter() {
|
||||
|
@ -148,7 +147,6 @@ impl State for MVState {
|
|||
}
|
||||
w.update(id.clone() + ".text", res.as_string());
|
||||
}
|
||||
|
||||
}
|
||||
w.refresh();
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::parser::Value::{QmlIdent, QmlString};
|
||||
use crate::parser::{Value, QML};
|
||||
use crate::state;
|
||||
use crate::widget_builders::{WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{QmlContext, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use crate::parser::{Value, QML};
|
||||
use crate::widget_builders::{parse_number, QmlWidgetBuilder, WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{parse_number, QmlContext, QmlWidgetBuilder, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::parser::Value::{QmlIdent, QmlString};
|
||||
use crate::parser::{Value, QML};
|
||||
use crate::state;
|
||||
use crate::widget_builders::{WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{QmlContext, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
@ -21,7 +21,7 @@ impl WidgetBuilder for ImageBuilder {
|
|||
qmlctx.indexes.push(text.clone());
|
||||
text.clone()
|
||||
}
|
||||
_ => String::new()
|
||||
_ => String::new(),
|
||||
};
|
||||
|
||||
let src = match properties.get("source") {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::parser::Value::QmlString;
|
||||
use crate::parser::{parse_qml, Value, QML};
|
||||
use crate::widget_builders::{parse_number, QmlWidgetBuilder, WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{parse_number, QmlContext, QmlWidgetBuilder, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
|
|
@ -8,19 +8,19 @@ use crate::widget_builders::textfield::TextBuilder;
|
|||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
||||
use crate::widget_builders::image::ImageBuilder;
|
||||
use crate::widget_builders::import::ImportBuilder;
|
||||
use std::collections::HashMap;
|
||||
use crate::widget_builders::image::ImageBuilder;
|
||||
|
||||
pub mod button;
|
||||
pub mod grid;
|
||||
pub mod image;
|
||||
pub mod import;
|
||||
pub mod rectangle;
|
||||
pub mod textedit;
|
||||
pub mod textfield;
|
||||
pub mod image;
|
||||
|
||||
pub fn parse_color_property(properties: &HashMap<String,Value>, prop: &str) -> Color {
|
||||
pub fn parse_color_property(properties: &HashMap<String, Value>, prop: &str) -> Color {
|
||||
match properties.get(prop) {
|
||||
Some(QmlString(col)) => match col.as_str() {
|
||||
"red" => Color::rgb(0xff, 00, 00),
|
||||
|
@ -39,9 +39,9 @@ fn parse_number(val: Option<&Value>) -> f64 {
|
|||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct QmlContext{
|
||||
pub struct QmlContext {
|
||||
pub(crate) indexes: Vec<String>,
|
||||
pub(crate) code: HashMap<(String, String),String>
|
||||
pub(crate) code: HashMap<(String, String), String>,
|
||||
}
|
||||
|
||||
pub trait WidgetBuilder {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::parser::Value::QmlString;
|
||||
use crate::parser::{Value, QML};
|
||||
use crate::widget_builders::{parse_number, QmlWidgetBuilder, WidgetBuilder, QmlContext, parse_color_property};
|
||||
use crate::widget_builders::{parse_color_property, parse_number, QmlContext, QmlWidgetBuilder, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
@ -13,11 +13,10 @@ impl WidgetBuilder for RectangleBuilder {
|
|||
let _width = parse_number(properties.get("width"));
|
||||
let _height = parse_number(properties.get("height"));
|
||||
|
||||
|
||||
let mut rect = Container::new();
|
||||
rect = rect.background(parse_color_property(&properties, "color"));
|
||||
rect = rect.border_brush(parse_color_property(&properties, "border.color"));
|
||||
rect = rect.border_width(Thickness::new(1.0,1.0,1.0,1.0));
|
||||
rect = rect.border_width(Thickness::new(1.0, 1.0, 1.0, 1.0));
|
||||
rect = rect.attach(Grid::row(row as usize));
|
||||
rect = rect.attach(Grid::column(col as usize));
|
||||
let qwb = QmlWidgetBuilder::new();
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use crate::parser::Value::{QmlIdent, QmlString};
|
||||
use crate::parser::{Value, QML};
|
||||
use crate::state;
|
||||
use crate::widget_builders::{WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{QmlContext, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::parser::Value::{QmlIdent, QmlString};
|
||||
use crate::parser::{Value, QML};
|
||||
use crate::widget_builders::{WidgetBuilder, QmlContext};
|
||||
use crate::widget_builders::{QmlContext, WidgetBuilder};
|
||||
use orbtk::prelude::HashMap;
|
||||
use orbtk::prelude::*;
|
||||
use orbtk::Entity;
|
||||
|
|
Loading…
Reference in New Issue