Use actual floats for logical coordinates
This commit is contained in:
parent
9f29aec128
commit
67408311f4
12 changed files with 165 additions and 136 deletions
|
|
@ -4,8 +4,10 @@ use iced::multi_window::{self, Application};
|
|||
use iced::widget::{button, column, container, scrollable, text, text_input};
|
||||
use iced::window;
|
||||
use iced::{
|
||||
Alignment, Command, Element, Length, Settings, Subscription, Theme,
|
||||
Alignment, Command, Element, Length, Point, Settings, Subscription, Theme,
|
||||
Vector,
|
||||
};
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
fn main() -> iced::Result {
|
||||
|
|
@ -33,8 +35,8 @@ enum Message {
|
|||
ScaleChanged(window::Id, String),
|
||||
TitleChanged(window::Id, String),
|
||||
CloseWindow(window::Id),
|
||||
WindowCreated(window::Id, Option<Point>),
|
||||
WindowDestroyed(window::Id),
|
||||
WindowCreated(window::Id, (i32, i32)),
|
||||
NewWindow,
|
||||
}
|
||||
|
||||
|
|
@ -90,10 +92,11 @@ impl multi_window::Application for Example {
|
|||
self.windows.remove(&id);
|
||||
}
|
||||
Message::WindowCreated(id, position) => {
|
||||
self.next_window_pos = window::Position::Specific(
|
||||
position.0 + 20,
|
||||
position.1 + 20,
|
||||
);
|
||||
if let Some(position) = position {
|
||||
self.next_window_pos = window::Position::Specific(
|
||||
position + Vector::new(20.0, 20.0),
|
||||
);
|
||||
}
|
||||
|
||||
if let Some(window) = self.windows.get(&id) {
|
||||
return text_input::focus(window.input_id.clone());
|
||||
|
|
|
|||
|
|
@ -114,14 +114,14 @@ impl State {
|
|||
|
||||
pub fn new() -> State {
|
||||
let now = Instant::now();
|
||||
let (width, height) = window::Settings::default().size;
|
||||
let size = window::Settings::default().size;
|
||||
|
||||
State {
|
||||
space_cache: canvas::Cache::default(),
|
||||
system_cache: canvas::Cache::default(),
|
||||
start: now,
|
||||
now,
|
||||
stars: Self::generate_stars(width, height),
|
||||
stars: Self::generate_stars(size.width, size.height),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -130,7 +130,7 @@ impl State {
|
|||
self.system_cache.clear();
|
||||
}
|
||||
|
||||
fn generate_stars(width: u32, height: u32) -> Vec<(Point, f32)> {
|
||||
fn generate_stars(width: f32, height: f32) -> Vec<(Point, f32)> {
|
||||
use rand::Rng;
|
||||
|
||||
let mut rng = rand::thread_rng();
|
||||
|
|
@ -139,12 +139,8 @@ impl State {
|
|||
.map(|_| {
|
||||
(
|
||||
Point::new(
|
||||
rng.gen_range(
|
||||
(-(width as f32) / 2.0)..(width as f32 / 2.0),
|
||||
),
|
||||
rng.gen_range(
|
||||
(-(height as f32) / 2.0)..(height as f32 / 2.0),
|
||||
),
|
||||
rng.gen_range((-width / 2.0)..(width / 2.0)),
|
||||
rng.gen_range((-height / 2.0)..(height / 2.0)),
|
||||
),
|
||||
rng.gen_range(0.5..1.0),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use iced::widget::{
|
|||
};
|
||||
use iced::window;
|
||||
use iced::{Application, Element};
|
||||
use iced::{Color, Command, Length, Settings, Subscription};
|
||||
use iced::{Color, Command, Length, Settings, Size, Subscription};
|
||||
|
||||
use once_cell::sync::Lazy;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
|
@ -22,7 +22,7 @@ pub fn main() -> iced::Result {
|
|||
|
||||
Todos::run(Settings {
|
||||
window: window::Settings {
|
||||
size: (500, 800),
|
||||
size: Size::new(500.0, 800.0),
|
||||
..window::Settings::default()
|
||||
},
|
||||
..Settings::default()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue