diff options
| author | pml68 <contact@pml68.me> | 2024-10-30 03:00:17 +0100 |
|---|---|---|
| committer | pml68 <contact@pml68.me> | 2024-10-30 03:00:17 +0100 |
| commit | 87e745b8e60225a789b51d5011fa620051c4cfbe (patch) | |
| tree | 6bf3cede25ee428939500038439508415d636f45 /iced_builder/src/types | |
| parent | feat: implement very basic playground (diff) | |
| download | iced-builder-87e745b8e60225a789b51d5011fa620051c4cfbe.tar.gz | |
feat: add error dialogs, windows manifest
Diffstat (limited to 'iced_builder/src/types')
| -rw-r--r-- | iced_builder/src/types/element_name.rs | 2 | ||||
| -rw-r--r-- | iced_builder/src/types/mod.rs | 33 | ||||
| -rw-r--r-- | iced_builder/src/types/project.rs | 14 | ||||
| -rwxr-xr-x | iced_builder/src/types/rendered_element.rs | 2 |
4 files changed, 44 insertions, 7 deletions
diff --git a/iced_builder/src/types/element_name.rs b/iced_builder/src/types/element_name.rs index bf38120..d71ae30 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; +use crate::error::Error; use super::rendered_element::{ button, column, container, image, row, svg, text, Action, RenderedElement, diff --git a/iced_builder/src/types/mod.rs b/iced_builder/src/types/mod.rs index 0012905..841b255 100644 --- a/iced_builder/src/types/mod.rs +++ b/iced_builder/src/types/mod.rs @@ -6,6 +6,39 @@ pub use element_name::ElementName; pub use project::Project; pub use rendered_element::*; +use std::path::PathBuf; + +use crate::error::Error; +use iced::widget::{pane_grid, text_editor}; + +#[derive(Debug, Clone)] +pub enum Message { + ToggleDarkMode, + CopyCode, + SwitchPage(DesignerPage), + EditorAction(text_editor::Action), + RefreshEditorContent, + DropNewElement(ElementName, iced::Point, iced::Rectangle), + HandleNew( + ElementName, + Vec<(iced::advanced::widget::Id, iced::Rectangle)>, + ), + MoveElement(RenderedElement, iced::Point, iced::Rectangle), + HandleMove( + RenderedElement, + Vec<(iced::advanced::widget::Id, iced::Rectangle)>, + ), + PaneResized(pane_grid::ResizeEvent), + PaneClicked(pane_grid::Pane), + PaneDragged(pane_grid::DragEvent), + NewFile, + OpenFile, + FileOpened(Result<(PathBuf, Project), Error>), + SaveFile, + SaveFileAs, + FileSaved(Result<PathBuf, Error>), +} + #[derive(Debug, Clone)] pub enum DesignerPage { Designer, diff --git a/iced_builder/src/types/project.rs b/iced_builder/src/types/project.rs index 52da41c..8d24a75 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; +use crate::error::Error; use super::rendered_element::RenderedElement; @@ -55,10 +55,10 @@ impl Project { } } - pub async fn from_file() -> Result<(PathBuf, Self), Error> { + pub async fn from_path() -> Result<(PathBuf, Self), Error> { let picked_file = rfd::AsyncFileDialog::new() .set_title("Open a JSON file...") - .add_filter("*.JSON, *.json", &["JSON", "json"]) + .add_filter("*.json, *.JSON", &["json", "JSON"]) .pick_file() .await .ok_or(Error::DialogClosed)?; @@ -77,7 +77,7 @@ impl Project { } else { rfd::AsyncFileDialog::new() .set_title("Save to JSON file...") - .add_filter("*.JSON, *.json", &["JSON", "json"]) + .add_filter("*.json, *.JSON", &["json", "JSON"]) .save_file() .await .as_ref() @@ -103,7 +103,7 @@ impl Project { {app_code} fn main() -> iced::Result {{ - iced::application("{}", State::update, State::view).theme(iced::Theme::{}).run() + iced::application("{}", State::update, State::view).theme(State::theme).run() }} #[derive(Default)] @@ -115,6 +115,10 @@ impl Project { impl State {{ fn update(&mut self, _message: Message) {{}} + fn theme(&self) -> iced::Theme {{ + iced::Theme::{} + }} + fn view(&self) -> Element<Message> {{ {view}.into() }} diff --git a/iced_builder/src/types/rendered_element.rs b/iced_builder/src/types/rendered_element.rs index 3dad8e7..58fd18d 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, Message}; +use crate::{error::Error, types::Message}; use super::ElementName; |
