1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
use std::path::PathBuf;
use iced::{
alignment::{Horizontal, Vertical},
widget::{text::Shaping, text_editor},
Alignment, ContentFit, Font, Length,
};
pub struct DesignerState {
pub designer_content: Vec<RenderedElement>,
pub designer_page: DesignerPage,
}
pub struct RenderedElement {
pub id: String,
pub children: Option<Vec<RenderedElement>>,
pub name: ElementName,
pub props: Props,
}
pub enum ElementName {
Text(String),
Button(String),
TextEditor(text_editor::Content),
SVG(PathBuf),
Image(PathBuf),
Container,
Row,
Column,
}
pub struct Props {
align_items: Option<Alignment>,
align_x: Option<Horizontal>,
align_y: Option<Vertical>,
horizontal_alignment: Option<Horizontal>,
vertical_alignment: Option<Vertical>,
height: Option<Length>,
width: Option<Length>,
font: Option<Font>,
padding: Option<i32>,
spacing: Option<i32>,
content_fit: Option<ContentFit>,
shaping: Option<Shaping>,
}
pub enum DesignerPage {
Designer,
CodeView,
}
|