From 608494aad09f520e7d78bff9950dbb282f8276a2 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Tue, 29 Oct 2024 09:31:09 +1300 Subject: Add a SetIcon request type This is used to set the window icon at runtime. This commit also exposes the Icon and CursorIcon types in the crate root, as they were previously inaccessible. --- src/events.rs | 2 +- src/lib.rs | 1 + src/window.rs | 3 +++ src/window_builder.rs | 6 ++---- 4 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/events.rs b/src/events.rs index b738e5b..7729a63 100644 --- a/src/events.rs +++ b/src/events.rs @@ -3,7 +3,6 @@ use crate::*; use winit::dpi::PhysicalSize; use winit::event::ElementState; use winit::keyboard::KeyCode; -use winit::window::CursorIcon; use std::path::PathBuf; @@ -17,6 +16,7 @@ pub enum Request { SetVisible(bool), SetPixelScale(u32), SetCursor(Option), + SetIcon(Option), Redraw, CreateWindow(WindowBuilder), CloseWindow, diff --git a/src/lib.rs b/src/lib.rs index f856775..acf8287 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -14,6 +14,7 @@ pub use phosphor::Phosphor; pub use event_queue::EventWriter; pub use winit::keyboard::{KeyCode, ModifiersState}; +pub use winit::window::{CursorIcon, Icon}; pub type Position = geometry::Point; pub type Dimensions = geometry::Dimensions; diff --git a/src/window.rs b/src/window.rs index 377d460..70c9c02 100644 --- a/src/window.rs +++ b/src/window.rs @@ -72,6 +72,8 @@ impl PhosphorWindow { window.set_cursor_visible(false); } + window.set_window_icon(builder.icon); + Self { winit: window, program: builder.program, @@ -100,6 +102,7 @@ impl PhosphorWindow { Request::SetVisible(visible) => self.winit.set_visible(visible), Request::SetPixelScale(scale) => self.set_scale(scale), Request::SetCursor(cursor) => self.set_cursor(cursor), + Request::SetIcon(icon) => self.winit.set_window_icon(icon), Request::Redraw => self.winit.request_redraw(), Request::CloseWindow => { self.marked_for_destruction = true; diff --git a/src/window_builder.rs b/src/window_builder.rs index 55c99f2..21787e6 100644 --- a/src/window_builder.rs +++ b/src/window_builder.rs @@ -1,7 +1,5 @@ use crate::*; -use winit::window::{Cursor, Icon}; - pub struct WindowBuilder { pub program: Box, @@ -9,8 +7,8 @@ pub struct WindowBuilder { pub dimensions: Option, pub scale: u32, pub title: Option, + pub cursor: Option, pub icon: Option, - pub cursor: Option, pub fullscreen: bool, } @@ -22,8 +20,8 @@ impl WindowBuilder { dimensions: None, scale: 1, title: None, - icon: None, cursor: None, + icon: None, fullscreen: false, } } -- cgit v1.2.3-70-g09d2