summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fonts/icons.toml1
-rw-r--r--fonts/icons.ttfbin6348 -> 6504 bytes
-rw-r--r--src/icon.rs6
-rw-r--r--src/panes/code_view.rs49
-rw-r--r--src/panes/designer_view.rs29
5 files changed, 57 insertions, 28 deletions
diff --git a/fonts/icons.toml b/fonts/icons.toml
index a70c0e7..3092001 100644
--- a/fonts/icons.toml
+++ b/fonts/icons.toml
@@ -4,3 +4,4 @@ module = "icon"
save = "entypo-floppy"
open = "fontawesome-folder-open-empty"
copy = "fontawesome-file-code"
+switch = "entypo-switch"
diff --git a/fonts/icons.ttf b/fonts/icons.ttf
index 7af6b0e..e1aba57 100644
--- a/fonts/icons.ttf
+++ b/fonts/icons.ttf
Binary files differ
diff --git a/src/icon.rs b/src/icon.rs
index 9dc0a89..3fbeb83 100644
--- a/src/icon.rs
+++ b/src/icon.rs
@@ -1,6 +1,6 @@
// Generated automatically by iced_fontello at build time.
// Do not edit manually. Source: ../fonts/icons.toml
-// 02c7558d187cdc056fdd0e6a638ef805fa10f5955f834575e51d75acd35bc70e
+// 915ea6b0646871c0f04350f201f27f28881b61f3bd6ef292a415d67a211739c1
use iced::widget::{text, Text};
use iced::Font;
@@ -18,6 +18,10 @@ pub fn save<'a>() -> Text<'a> {
icon("\u{1F4BE}")
}
+pub fn switch<'a>() -> Text<'a> {
+ icon("\u{21C6}")
+}
+
fn icon(codepoint: &str) -> Text<'_> {
text(codepoint).font(Font::with_name("icons"))
}
diff --git a/src/panes/code_view.rs b/src/panes/code_view.rs
index 551347c..85b0bbe 100644
--- a/src/panes/code_view.rs
+++ b/src/panes/code_view.rs
@@ -22,25 +22,40 @@ pub fn view(
editor_content: &text_editor::Content,
is_focused: bool,
) -> pane_grid::Content<'_, Message> {
- let title = row![
- text("Generated Code"),
- Space::with_width(Length::Fill),
- tip(
- button(icon::copy())
- .on_press(Message::CopyCode)
- .padding([2, 7])
- .style(button::text),
- "Copy",
- tip::Position::FollowCursor
- ),
- Space::with_width(20),
- button("Switch to Designer view")
- .on_press(Message::SwitchPage(DesignerPane::DesignerView))
- ]
- .align_y(Alignment::Center);
- let title_bar = pane_grid::TitleBar::new(title)
+ let title_bar = pane_grid::TitleBar::new(text("Generated Code").center())
+ .controls(pane_grid::Controls::dynamic(
+ row![
+ tip(
+ button(icon::copy())
+ .on_press(Message::CopyCode)
+ .padding([2, 7])
+ .style(button::text),
+ "Copy",
+ tip::Position::FollowCursor
+ ),
+ Space::with_width(20),
+ button("Switch to Designer view")
+ .on_press(Message::SwitchPage(DesignerPane::DesignerView))
+ ]
+ .align_y(Alignment::Center),
+ row![
+ tip(
+ button(icon::copy())
+ .on_press(Message::CopyCode)
+ .padding([2, 7])
+ .style(button::text),
+ "Copy",
+ tip::Position::FollowCursor
+ ),
+ Space::with_width(20),
+ button(icon::switch())
+ .on_press(Message::SwitchPage(DesignerPane::DesignerView))
+ ]
+ .align_y(Alignment::Center),
+ ))
.padding(10)
.style(style::title_bar);
+
pane_grid::Content::new(
text_editor(editor_content)
.on_action(Message::EditorAction)
diff --git a/src/panes/designer_view.rs b/src/panes/designer_view.rs
index 69ff750..af72022 100644
--- a/src/panes/designer_view.rs
+++ b/src/panes/designer_view.rs
@@ -1,9 +1,10 @@
use iced::widget::{
- Space, button, center, container, pane_grid, responsive, row, text, themer,
+ button, center, container, pane_grid, responsive, row, text, themer,
};
use iced::{Alignment, Element, Length};
use super::style;
+use crate::icon;
use crate::types::{DesignerPane, Message, RenderedElement};
pub fn view<'a>(
@@ -24,22 +25,30 @@ pub fn view<'a>(
.into()
})
.into(),
- None => text("Open a project or begin creating one").into(),
+ None => center("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(DesignerPane::CodeView)),
- ]
- .align_y(Alignment::Center);
- let title_bar = pane_grid::TitleBar::new(title)
+
+ let title_bar = pane_grid::TitleBar::new(text("Designer").center())
+ .controls(pane_grid::Controls::dynamic(
+ row![
+ button("Switch to Code view")
+ .on_press(Message::SwitchPage(DesignerPane::CodeView),)
+ ]
+ .align_y(Alignment::Center),
+ row![
+ button(icon::switch())
+ .on_press(Message::SwitchPage(DesignerPane::CodeView),)
+ ]
+ .align_y(Alignment::Center),
+ ))
.padding(10)
.style(style::title_bar);
+
pane_grid::Content::new(content)
.title_bar(title_bar)
.style(if is_focused {