diff options
| author | pml68 <contact@pml68.me> | 2024-11-06 14:22:41 +0100 |
|---|---|---|
| committer | pml68 <contact@pml68.me> | 2024-11-06 16:26:36 +0100 |
| commit | 65d3c249c9da370e26521a5ff409b6e6fdad4779 (patch) | |
| tree | ac8f2a1d05e481da6d3f82cce6081b853a71269c /iced_builder/src/types | |
| parent | fix: error when dropping new element on element list (diff) | |
| download | iced-builder-65d3c249c9da370e26521a5ff409b6e6fdad4779.tar.gz | |
feat: animated theme switching with `iced_anim` crate
c
c
Diffstat (limited to 'iced_builder/src/types')
| -rw-r--r-- | iced_builder/src/types/element_name.rs | 4 | ||||
| -rw-r--r-- | iced_builder/src/types/mod.rs | 16 | ||||
| -rw-r--r-- | iced_builder/src/types/project.rs | 8 | ||||
| -rwxr-xr-x | iced_builder/src/types/rendered_element.rs | 4 |
4 files changed, 18 insertions, 14 deletions
diff --git a/iced_builder/src/types/element_name.rs b/iced_builder/src/types/element_name.rs index d71ae30..cdbdf8f 100644 --- a/iced_builder/src/types/element_name.rs +++ b/iced_builder/src/types/element_name.rs @@ -1,6 +1,6 @@ use serde::{Deserialize, Serialize}; -use crate::error::Error; +use crate::{Error, Result}; use super::rendered_element::{ button, column, container, image, row, svg, text, Action, RenderedElement, @@ -32,7 +32,7 @@ impl ElementName { &self, element_tree: Option<&mut RenderedElement>, action: Action, - ) -> Result<Option<RenderedElement>, Error> { + ) -> Result<Option<RenderedElement>> { let element = match self { Self::Text(_) => text(""), Self::Button(_) => button(""), diff --git a/iced_builder/src/types/mod.rs b/iced_builder/src/types/mod.rs index 841b255..02fab4a 100644 --- a/iced_builder/src/types/mod.rs +++ b/iced_builder/src/types/mod.rs @@ -8,12 +8,16 @@ pub use rendered_element::*; use std::path::PathBuf; -use crate::error::Error; -use iced::widget::{pane_grid, text_editor}; +use crate::Result; +use iced::{ + widget::{pane_grid, text_editor}, + Theme, +}; +use iced_anim::SpringEvent; #[derive(Debug, Clone)] pub enum Message { - ToggleDarkMode, + ToggleTheme(SpringEvent<Theme>), CopyCode, SwitchPage(DesignerPage), EditorAction(text_editor::Action), @@ -33,14 +37,14 @@ pub enum Message { PaneDragged(pane_grid::DragEvent), NewFile, OpenFile, - FileOpened(Result<(PathBuf, Project), Error>), + FileOpened(Result<(PathBuf, Project)>), SaveFile, SaveFileAs, - FileSaved(Result<PathBuf, Error>), + FileSaved(Result<PathBuf>), } #[derive(Debug, Clone)] pub enum DesignerPage { - Designer, + DesignerView, CodeView, } diff --git a/iced_builder/src/types/project.rs b/iced_builder/src/types/project.rs index 8d24a75..a33d3bb 100644 --- a/iced_builder/src/types/project.rs +++ b/iced_builder/src/types/project.rs @@ -4,7 +4,7 @@ use std::path::{Path, PathBuf}; use iced::Theme; use serde::{Deserialize, Serialize}; -use crate::error::Error; +use crate::{Error, Result}; use super::rendered_element::RenderedElement; @@ -55,7 +55,7 @@ impl Project { } } - pub async fn from_path() -> Result<(PathBuf, Self), Error> { + pub async fn from_path() -> Result<(PathBuf, Self)> { let picked_file = rfd::AsyncFileDialog::new() .set_title("Open a JSON file...") .add_filter("*.json, *.JSON", &["json", "JSON"]) @@ -71,7 +71,7 @@ impl Project { Ok((path, element)) } - pub async fn write_to_file(self, path: Option<PathBuf>) -> Result<PathBuf, Error> { + pub async fn write_to_file(self, path: Option<PathBuf>) -> Result<PathBuf> { let path = if let Some(p) = path { p } else { @@ -92,7 +92,7 @@ impl Project { Ok(path) } - pub fn app_code(&self) -> Result<String, Error> { + pub fn app_code(&self) -> Result<String> { match self.element_tree { Some(ref element_tree) => { let (imports, view) = element_tree.codegen(); diff --git a/iced_builder/src/types/rendered_element.rs b/iced_builder/src/types/rendered_element.rs index 58fd18d..b1edb66 100755 --- a/iced_builder/src/types/rendered_element.rs +++ b/iced_builder/src/types/rendered_element.rs @@ -5,7 +5,7 @@ use iced::{widget, Element, Length}; use serde::{Deserialize, Serialize}; use unique_id::{string::StringGenerator, Generator}; -use crate::{error::Error, types::Message}; +use crate::{types::Message, Result}; use super::ElementName; @@ -121,7 +121,7 @@ impl RenderedElement { &self, element_tree: Option<&mut RenderedElement>, action: Action, - ) -> Result<(), Error> { + ) -> Result<()> { let element_tree = element_tree.unwrap(); match action { |
