From 6531d6783cb5943564c452e3368b3b68ef0b0b0b Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Mon, 28 Jul 2025 14:33:46 +0100 Subject: task-010: adds Hello, world! --- schist_desktop_gui/src/config.rs | 8 ++++++++ schist_desktop_gui/src/main.rs | 20 ++++++++++++++++++-- schist_desktop_gui/src/message.rs | 3 +++ schist_desktop_gui/src/settings.rs | 7 +++++++ schist_desktop_gui/src/state.rs | 18 ++++++++++++++++++ schist_desktop_gui/src/theme.rs | 7 +++++++ schist_desktop_gui/src/view.rs | 7 +++++++ schist_desktop_gui/src/window_settings.rs | 7 +++++++ 8 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 schist_desktop_gui/src/config.rs create mode 100644 schist_desktop_gui/src/message.rs create mode 100644 schist_desktop_gui/src/settings.rs create mode 100644 schist_desktop_gui/src/state.rs create mode 100644 schist_desktop_gui/src/theme.rs create mode 100644 schist_desktop_gui/src/view.rs create mode 100644 schist_desktop_gui/src/window_settings.rs (limited to 'schist_desktop_gui/src') diff --git a/schist_desktop_gui/src/config.rs b/schist_desktop_gui/src/config.rs new file mode 100644 index 0000000..cab9eba --- /dev/null +++ b/schist_desktop_gui/src/config.rs @@ -0,0 +1,8 @@ +#[derive(Clone)] +pub struct Config {} + +impl Default for Config { + fn default() -> Self { + Self {} + } +} diff --git a/schist_desktop_gui/src/main.rs b/schist_desktop_gui/src/main.rs index f79c691..b836453 100644 --- a/schist_desktop_gui/src/main.rs +++ b/schist_desktop_gui/src/main.rs @@ -1,2 +1,18 @@ -fn main() { -} +mod config; +mod message; +mod settings; +mod state; +mod theme; +mod window_settings; +mod view; + +use crate::{config::Config, settings::make_settings, state::State, theme::make_theme, window_settings::make_window_settings, view::view}; + +fn main() -> iced::Result { + let config = Config::default(); + iced::application("Schist", State::update, view) + .settings(make_settings(&config.clone())) + .theme(|state: &State| make_theme(state)) + .window(make_window_settings(&config.clone())) + .run() +} \ No newline at end of file diff --git a/schist_desktop_gui/src/message.rs b/schist_desktop_gui/src/message.rs new file mode 100644 index 0000000..10f734b --- /dev/null +++ b/schist_desktop_gui/src/message.rs @@ -0,0 +1,3 @@ +#[derive(Debug)] +pub enum Message { +} diff --git a/schist_desktop_gui/src/settings.rs b/schist_desktop_gui/src/settings.rs new file mode 100644 index 0000000..37fb8ca --- /dev/null +++ b/schist_desktop_gui/src/settings.rs @@ -0,0 +1,7 @@ +use iced::Settings; + +use crate::config::Config; + +pub fn make_settings(_config: &Config) -> Settings { + Settings::default() +} \ No newline at end of file diff --git a/schist_desktop_gui/src/state.rs b/schist_desktop_gui/src/state.rs new file mode 100644 index 0000000..0183104 --- /dev/null +++ b/schist_desktop_gui/src/state.rs @@ -0,0 +1,18 @@ +use crate::message::Message; + +pub struct State { + pub greeting: String, +} + +impl State { + pub fn update(&mut self, _message: Message) { + } +} + +impl Default for State { + fn default() -> Self { + Self { + greeting: String::from("Hello, world!"), + } + } +} diff --git a/schist_desktop_gui/src/theme.rs b/schist_desktop_gui/src/theme.rs new file mode 100644 index 0000000..695ff8a --- /dev/null +++ b/schist_desktop_gui/src/theme.rs @@ -0,0 +1,7 @@ +use iced::Theme; + +use crate::state::State; + +pub fn make_theme(_state: &State) -> Theme { + Theme::GruvboxDark +} \ No newline at end of file diff --git a/schist_desktop_gui/src/view.rs b/schist_desktop_gui/src/view.rs new file mode 100644 index 0000000..7d169b5 --- /dev/null +++ b/schist_desktop_gui/src/view.rs @@ -0,0 +1,7 @@ +use iced::widget::{column, Column}; + +use crate::{message::Message, state::State}; + +pub fn view(state: &State) -> Column { + column![iced::widget::text(state.greeting.clone())] +} diff --git a/schist_desktop_gui/src/window_settings.rs b/schist_desktop_gui/src/window_settings.rs new file mode 100644 index 0000000..cd71d09 --- /dev/null +++ b/schist_desktop_gui/src/window_settings.rs @@ -0,0 +1,7 @@ +use iced::window::Settings; + +use crate::config::Config; + +pub fn make_window_settings(_config: &Config) -> Settings { + Settings::default() +} \ No newline at end of file -- cgit v1.2.3