diff options
| author | Polesznyák Márk László <116908301+pml68@users.noreply.github.com> | 2024-12-26 00:12:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-26 00:12:06 +0100 |
| commit | 0ae3ec6cc9babcab39c76f023606229a151916ab (patch) | |
| tree | e92d0109599622984b2c485cc020951da288cec3 /iced_builder/src/views | |
| parent | Merge pull request #3 from pml68/refactor/internal-restructuring (diff) | |
| parent | feat: add `tip` widget helper from `hecrj/icebreaker` (diff) | |
| download | iced-builder-0ae3ec6cc9babcab39c76f023606229a151916ab.tar.gz | |
Merge pull request #4 from pml68/feat/playground
Playground done **for now**
Diffstat (limited to 'iced_builder/src/views')
| -rw-r--r-- | iced_builder/src/views/code_view.rs | 50 | ||||
| -rw-r--r-- | iced_builder/src/views/designer_view.rs | 40 | ||||
| -rw-r--r-- | iced_builder/src/views/element_list.rs | 48 | ||||
| -rw-r--r-- | iced_builder/src/views/mod.rs | 4 | ||||
| -rw-r--r-- | iced_builder/src/views/style.rs | 40 |
5 files changed, 0 insertions, 182 deletions
diff --git a/iced_builder/src/views/code_view.rs b/iced_builder/src/views/code_view.rs deleted file mode 100644 index 4515687..0000000 --- a/iced_builder/src/views/code_view.rs +++ /dev/null @@ -1,50 +0,0 @@ -use super::style; -use crate::{types::DesignerPage, Message}; -use iced::{ - highlighter, - widget::{button, container, pane_grid, row, text, text_editor, tooltip, Space}, - Alignment, Font, Length, -}; - -pub fn view<'a>( - editor_content: &'a text_editor::Content, - dark_theme: bool, - is_focused: bool, -) -> pane_grid::Content<'a, Message> { - let title = row![ - text("Generated Code"), - Space::with_width(Length::Fill), - tooltip( - button(container(text('\u{0e801}').font(Font::with_name("editor-icons"))).center_x(30)) - .on_press(Message::CopyCode), - "Copy code to clipboard", - tooltip::Position::FollowCursor - ), - Space::with_width(20), - button("Switch to Designer view").on_press(Message::SwitchPage(DesignerPage::Designer)) - ] - .align_y(Alignment::Center); - let title_bar = pane_grid::TitleBar::new(title) - .padding(10) - .style(style::title_bar); - pane_grid::Content::new( - text_editor(editor_content) - .on_action(Message::EditorAction) - .highlight( - "rs", - if dark_theme { - highlighter::Theme::SolarizedDark - } else { - highlighter::Theme::InspiredGitHub - }, - ) - .height(Length::Fill) - .padding(20), - ) - .title_bar(title_bar) - .style(if is_focused { - style::pane_focused - } else { - style::pane_active - }) -} diff --git a/iced_builder/src/views/designer_view.rs b/iced_builder/src/views/designer_view.rs deleted file mode 100644 index 6f31a51..0000000 --- a/iced_builder/src/views/designer_view.rs +++ /dev/null @@ -1,40 +0,0 @@ -use super::style; -use crate::{ - types::{rendered_element::RenderedElement, DesignerPage}, - Message, -}; -use iced::{ - widget::{button, container, pane_grid, row, text, themer, Space}, - Alignment, Length, -}; - -pub fn view<'a>( - element_tree: &Option<RenderedElement>, - designer_theme: iced::Theme, - is_focused: bool, -) -> pane_grid::Content<'a, Message> { - let el_tree = match element_tree { - Some(tree) => tree.clone().as_element(), - None => text("Open a project or begin creating one").into(), - }; - let content = container(themer(designer_theme, el_tree)) - .id(iced::widget::container::Id::new("drop_zone")) - .height(Length::Fill) - .width(Length::Fill); - let title = row![ - text("Designer"), - Space::with_width(Length::Fill), - button("Switch to Code view").on_press(Message::SwitchPage(DesignerPage::CodeView)), - ] - .align_y(Alignment::Center); - let title_bar = pane_grid::TitleBar::new(title) - .padding(10) - .style(style::title_bar); - pane_grid::Content::new(content) - .title_bar(title_bar) - .style(if is_focused { - style::pane_focused - } else { - style::pane_active - }) -} diff --git a/iced_builder/src/views/element_list.rs b/iced_builder/src/views/element_list.rs deleted file mode 100644 index f0fdd2f..0000000 --- a/iced_builder/src/views/element_list.rs +++ /dev/null @@ -1,48 +0,0 @@ -use super::style; -use crate::{types::element_name::ElementName, Message}; -use iced::{ - widget::{column, container, pane_grid, text, Column}, - Alignment, Element, Length, -}; -use iced_drop::droppable; - -fn items_list_view<'a>(items: &'a Vec<ElementName>) -> Element<'a, Message> { - let mut column = Column::new() - .spacing(20) - .align_x(Alignment::Center) - .width(Length::Fill); - - for item in items { - column = column.push( - droppable(text(item.clone().to_string())) - .on_drop(move |point, rect| Message::DropNewElement(item.clone(), point, rect)), - ); - } - - container(column) - .width(Length::Fill) - .height(Length::Fill) - .into() -} - -pub fn view<'a>( - element_list: &'a Vec<ElementName>, - is_focused: bool, -) -> pane_grid::Content<'a, Message> { - let items_list = items_list_view(element_list); - let content = column![items_list] - .align_x(Alignment::Center) - .height(Length::Fill) - .width(Length::Fill); - let title = text("Element List"); - let title_bar = pane_grid::TitleBar::new(title) - .padding(10) - .style(style::title_bar); - pane_grid::Content::new(content) - .title_bar(title_bar) - .style(if is_focused { - style::pane_focused - } else { - style::pane_active - }) -} diff --git a/iced_builder/src/views/mod.rs b/iced_builder/src/views/mod.rs deleted file mode 100644 index 387662a..0000000 --- a/iced_builder/src/views/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod code_view; -pub mod designer_view; -pub mod element_list; -mod style; diff --git a/iced_builder/src/views/style.rs b/iced_builder/src/views/style.rs deleted file mode 100644 index 1eefb2d..0000000 --- a/iced_builder/src/views/style.rs +++ /dev/null @@ -1,40 +0,0 @@ -use iced::widget::container::Style; -use iced::{Border, Theme}; - -pub fn title_bar(theme: &Theme) -> Style { - let palette = theme.extended_palette(); - - Style { - text_color: Some(palette.background.strong.text), - background: Some(palette.background.strong.color.into()), - ..Default::default() - } -} - -pub fn pane_active(theme: &Theme) -> Style { - let palette = theme.extended_palette(); - - Style { - background: Some(palette.background.weak.color.into()), - border: Border { - width: 1.0, - color: palette.background.strong.color, - ..Border::default() - }, - ..Default::default() - } -} - -pub fn pane_focused(theme: &Theme) -> Style { - let palette = theme.extended_palette(); - - Style { - background: Some(palette.background.weak.color.into()), - border: Border { - width: 4.0, - color: palette.background.strong.color, - ..Border::default() - }, - ..Default::default() - } -} |
