// SPDX-License-Identifier: EUPL-1.2+ // SPDX-FileCopyrightText: 2025 Johannes Süllner use super::{BUTTON_TEXT_SIZE, Event, MARGIN_VERTICAL, Page, TITLE_TEXT_SIZE, UpdateResult}; use crate::{center_horizontal_in_container, center_in_container}; use iced::{ Element, Length, Task, widget::{column, image, space, text}, }; const LOGO_PATH_GLOBAL: &str = "/usr/share/icons/hicolor/400x400/apps/spectrum-installer.png"; const LOGO_WIDTH: f32 = 400.0; pub struct PageWelcome {} impl PageWelcome { pub fn new() -> Self { Self {} } } #[derive(Clone, Debug)] pub enum PageWelcomeEvent { Continue, } impl Page for PageWelcome { fn update(&mut self, event: Event) -> UpdateResult { if let Event::PageWelcome(page_welcome_event) = event { match page_welcome_event { PageWelcomeEvent::Continue => { return ( Some(Box::new(super::disk_selection::PageDiskSelection::new())), Task::none(), ); } } } (None, Task::none()) } fn view(&self) -> Element<'_, Event> { let button_content = text("Next").size(BUTTON_TEXT_SIZE); let main_content = column![ space().height(MARGIN_VERTICAL), center_horizontal_in_container!( text("Welcome to the installation of Spectrum!").size(TITLE_TEXT_SIZE) ), space().height(MARGIN_VERTICAL), center_in_container!(image(LOGO_PATH_GLOBAL).width(Length::Fixed(LOGO_WIDTH))) ]; super::layout::bottom_buttons_layout( [[( button_content.into(), Some(Event::PageWelcome(PageWelcomeEvent::Continue)), )]], main_content.into(), ) } }