From 65d3c249c9da370e26521a5ff409b6e6fdad4779 Mon Sep 17 00:00:00 2001 From: pml68 Date: Wed, 6 Nov 2024 14:22:41 +0100 Subject: feat: animated theme switching with `iced_anim` crate c c --- iced_builder/src/types/element_name.rs | 4 ++-- iced_builder/src/types/mod.rs | 16 ++++++++++------ iced_builder/src/types/project.rs | 8 ++++---- iced_builder/src/types/rendered_element.rs | 4 ++-- 4 files changed, 18 insertions(+), 14 deletions(-) (limited to 'iced_builder/src/types') 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, Error> { + ) -> Result> { 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), 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), + FileSaved(Result), } #[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) -> Result { + pub async fn write_to_file(self, path: Option) -> Result { let path = if let Some(p) = path { p } else { @@ -92,7 +92,7 @@ impl Project { Ok(path) } - pub fn app_code(&self) -> Result { + pub fn app_code(&self) -> Result { 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 { -- cgit v1.2.3