summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/src/keyboard/key_code.rs37
-rw-r--r--core/src/point.rs6
-rw-r--r--core/src/size.rs6
-rw-r--r--examples/color_palette/src/main.rs2
-rw-r--r--examples/tour/src/main.rs2
-rw-r--r--glutin/Cargo.toml2
-rw-r--r--native/src/widget/button.rs6
-rw-r--r--native/src/widget/column.rs1
-rw-r--r--native/src/widget/radio.rs6
-rw-r--r--native/src/widget/row.rs2
-rw-r--r--native/src/widget/slider.rs6
-rw-r--r--native/src/widget/text_input.rs10
-rw-r--r--src/application.rs2
-rw-r--r--src/executor.rs2
-rw-r--r--src/sandbox.rs3
-rw-r--r--winit/Cargo.toml2
-rw-r--r--winit/src/conversion.rs14
-rw-r--r--winit/src/settings.rs2
18 files changed, 70 insertions, 41 deletions
diff --git a/core/src/keyboard/key_code.rs b/core/src/keyboard/key_code.rs
index 26020a57..74ead170 100644
--- a/core/src/keyboard/key_code.rs
+++ b/core/src/keyboard/key_code.rs
@@ -55,7 +55,7 @@ pub enum KeyCode {
Y,
Z,
- /// The Escape key, next to F1
+ /// The Escape key, next to F1.
Escape,
F1,
@@ -83,14 +83,14 @@ pub enum KeyCode {
F23,
F24,
- /// Print Screen/SysRq
+ /// Print Screen/SysRq.
Snapshot,
- /// Scroll Lock
+ /// Scroll Lock.
Scroll,
- /// Pause/Break key, next to Scroll lock
+ /// Pause/Break key, next to Scroll lock.
Pause,
- /// `Insert`, next to Backspace
+ /// `Insert`, next to Backspace.
Insert,
Home,
Delete,
@@ -103,11 +103,14 @@ pub enum KeyCode {
Right,
Down,
+ /// The Backspace key, right over Enter.
Backspace,
+ /// The Enter key.
Enter,
+ /// The space bar.
Space,
- /// The "Compose" key on Linux
+ /// The "Compose" key on Linux.
Compose,
Caret,
@@ -123,12 +126,20 @@ pub enum KeyCode {
Numpad7,
Numpad8,
Numpad9,
+ NumpadAdd,
+ NumpadDivide,
+ NumpadDecimal,
+ NumpadComma,
+ NumpadEnter,
+ NumpadEquals,
+ NumpadMultiply,
+ NumpadSubtract,
AbntC1,
AbntC2,
- Add,
Apostrophe,
Apps,
+ Asterisk,
At,
Ax,
Backslash,
@@ -137,8 +148,6 @@ pub enum KeyCode {
Colon,
Comma,
Convert,
- Decimal,
- Divide,
Equals,
Grave,
Kana,
@@ -152,19 +161,16 @@ pub enum KeyCode {
MediaSelect,
MediaStop,
Minus,
- Multiply,
Mute,
MyComputer,
- NavigateForward, // also called "Prior"
- NavigateBackward, // also called "Next"
+ NavigateForward, // also called "Next"
+ NavigateBackward, // also called "Prior"
NextTrack,
NoConvert,
- NumpadComma,
- NumpadEnter,
- NumpadEquals,
OEM102,
Period,
PlayPause,
+ Plus,
Power,
PrevTrack,
RAlt,
@@ -176,7 +182,6 @@ pub enum KeyCode {
Slash,
Sleep,
Stop,
- Subtract,
Sysrq,
Tab,
Underline,
diff --git a/core/src/point.rs b/core/src/point.rs
index 3714aa2f..7d93538f 100644
--- a/core/src/point.rs
+++ b/core/src/point.rs
@@ -46,6 +46,12 @@ impl From<[u16; 2]> for Point {
}
}
+impl From<Point> for [f32; 2] {
+ fn from(point: Point) -> [f32; 2] {
+ [point.x, point.y]
+ }
+}
+
impl std::ops::Add<Vector> for Point {
type Output = Self;
diff --git a/core/src/size.rs b/core/src/size.rs
index aceb5311..7c481935 100644
--- a/core/src/size.rs
+++ b/core/src/size.rs
@@ -56,3 +56,9 @@ impl From<[u16; 2]> for Size {
Size::new(width.into(), height.into())
}
}
+
+impl From<Size> for [f32; 2] {
+ fn from(size: Size) -> [f32; 2] {
+ [size.width, size.height]
+ }
+}
diff --git a/examples/color_palette/src/main.rs b/examples/color_palette/src/main.rs
index fec5f48c..bb2c61cb 100644
--- a/examples/color_palette/src/main.rs
+++ b/examples/color_palette/src/main.rs
@@ -284,7 +284,7 @@ impl<C: 'static + ColorSpace + Copy> ColorPicker<C> {
let [s1, s2, s3] = &mut self.sliders;
let [cr1, cr2, cr3] = C::COMPONENT_RANGES;
- fn slider<C>(
+ fn slider<C: Clone>(
state: &mut slider::State,
range: RangeInclusive<f64>,
component: f32,
diff --git a/examples/tour/src/main.rs b/examples/tour/src/main.rs
index ec464801..560d67e2 100644
--- a/examples/tour/src/main.rs
+++ b/examples/tour/src/main.rs
@@ -689,7 +689,7 @@ fn ferris<'a>(width: u16) -> Container<'a, StepMessage> {
.center_x()
}
-fn button<'a, Message>(
+fn button<'a, Message: Clone>(
state: &'a mut button::State,
label: &str,
) -> Button<'a, Message> {
diff --git a/glutin/Cargo.toml b/glutin/Cargo.toml
index 4652112c..b298134c 100644
--- a/glutin/Cargo.toml
+++ b/glutin/Cargo.toml
@@ -14,7 +14,7 @@ categories = ["gui"]
debug = ["iced_winit/debug"]
[dependencies]
-glutin = "0.24"
+glutin = "0.25"
[dependencies.iced_native]
version = "0.2"
diff --git a/native/src/widget/button.rs b/native/src/widget/button.rs
index c932da2b..fd74563a 100644
--- a/native/src/widget/button.rs
+++ b/native/src/widget/button.rs
@@ -18,6 +18,7 @@ use std::hash::Hash;
/// # type Button<'a, Message> =
/// # iced_native::Button<'a, Message, iced_native::renderer::Null>;
/// #
+/// #[derive(Clone)]
/// enum Message {
/// ButtonPressed,
/// }
@@ -41,6 +42,7 @@ pub struct Button<'a, Message, Renderer: self::Renderer> {
impl<'a, Message, Renderer> Button<'a, Message, Renderer>
where
+ Message: Clone,
Renderer: self::Renderer,
{
/// Creates a new [`Button`] with some local [`State`] and the given
@@ -142,8 +144,8 @@ impl State {
impl<'a, Message, Renderer> Widget<Message, Renderer>
for Button<'a, Message, Renderer>
where
- Renderer: self::Renderer,
Message: Clone,
+ Renderer: self::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -272,8 +274,8 @@ pub trait Renderer: crate::Renderer + Sized {
impl<'a, Message, Renderer> From<Button<'a, Message, Renderer>>
for Element<'a, Message, Renderer>
where
- Renderer: 'a + self::Renderer,
Message: 'a + Clone,
+ Renderer: 'a + self::Renderer,
{
fn from(
button: Button<'a, Message, Renderer>,
diff --git a/native/src/widget/column.rs b/native/src/widget/column.rs
index 4fd6e065..a5ac2101 100644
--- a/native/src/widget/column.rs
+++ b/native/src/widget/column.rs
@@ -195,6 +195,7 @@ where
self.max_height.hash(state);
self.align_items.hash(state);
self.spacing.hash(state);
+ self.padding.hash(state);
for child in &self.children {
child.widget.hash_layout(state);
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index 5b8d00e9..a7cabd49 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -47,6 +47,8 @@ pub struct Radio<Message, Renderer: self::Renderer + text::Renderer> {
impl<Message, Renderer: self::Renderer + text::Renderer>
Radio<Message, Renderer>
+where
+ Message: Clone,
{
/// Creates a new [`Radio`] button.
///
@@ -123,8 +125,8 @@ impl<Message, Renderer: self::Renderer + text::Renderer>
impl<Message, Renderer> Widget<Message, Renderer> for Radio<Message, Renderer>
where
- Renderer: self::Renderer + text::Renderer + row::Renderer,
Message: Clone,
+ Renderer: self::Renderer + text::Renderer + row::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -264,8 +266,8 @@ pub trait Renderer: crate::Renderer {
impl<'a, Message, Renderer> From<Radio<Message, Renderer>>
for Element<'a, Message, Renderer>
where
- Renderer: 'a + self::Renderer + row::Renderer + text::Renderer,
Message: 'a + Clone,
+ Renderer: 'a + self::Renderer + row::Renderer + text::Renderer,
{
fn from(radio: Radio<Message, Renderer>) -> Element<'a, Message, Renderer> {
Element::new(radio)
diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs
index 846940c6..b37a5cfc 100644
--- a/native/src/widget/row.rs
+++ b/native/src/widget/row.rs
@@ -196,7 +196,7 @@ where
self.max_height.hash(state);
self.align_items.hash(state);
self.spacing.hash(state);
- self.spacing.hash(state);
+ self.padding.hash(state);
for child in &self.children {
child.widget.hash_layout(state);
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs
index c49053f1..3255dd04 100644
--- a/native/src/widget/slider.rs
+++ b/native/src/widget/slider.rs
@@ -26,6 +26,7 @@ use std::{hash::Hash, ops::RangeInclusive};
/// # use iced_native::{slider, renderer::Null};
/// #
/// # pub type Slider<'a, T, Message> = iced_native::Slider<'a, T, Message, Null>;
+/// #[derive(Clone)]
/// pub enum Message {
/// SliderChanged(f32),
/// }
@@ -53,6 +54,7 @@ pub struct Slider<'a, T, Message, Renderer: self::Renderer> {
impl<'a, T, Message, Renderer> Slider<'a, T, Message, Renderer>
where
T: Copy + From<u8> + std::cmp::PartialOrd,
+ Message: Clone,
Renderer: self::Renderer,
{
/// Creates a new [`Slider`].
@@ -168,8 +170,8 @@ impl<'a, T, Message, Renderer> Widget<Message, Renderer>
for Slider<'a, T, Message, Renderer>
where
T: Copy + Into<f64> + num_traits::FromPrimitive,
- Renderer: self::Renderer,
Message: Clone,
+ Renderer: self::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -322,8 +324,8 @@ impl<'a, T, Message, Renderer> From<Slider<'a, T, Message, Renderer>>
for Element<'a, Message, Renderer>
where
T: 'a + Copy + Into<f64> + num_traits::FromPrimitive,
- Renderer: 'a + self::Renderer,
Message: 'a + Clone,
+ Renderer: 'a + self::Renderer,
{
fn from(
slider: Slider<'a, T, Message, Renderer>,
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index 9e15f4be..32a57ce6 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -63,7 +63,11 @@ pub struct TextInput<'a, Message, Renderer: self::Renderer> {
style: Renderer::Style,
}
-impl<'a, Message, Renderer: self::Renderer> TextInput<'a, Message, Renderer> {
+impl<'a, Message, Renderer> TextInput<'a, Message, Renderer>
+where
+ Message: Clone,
+ Renderer: self::Renderer,
+{
/// Creates a new [`TextInput`].
///
/// It expects:
@@ -175,8 +179,8 @@ impl<'a, Message, Renderer: self::Renderer> TextInput<'a, Message, Renderer> {
impl<'a, Message, Renderer> Widget<Message, Renderer>
for TextInput<'a, Message, Renderer>
where
- Renderer: self::Renderer,
Message: Clone,
+ Renderer: self::Renderer,
{
fn width(&self) -> Length {
self.width
@@ -629,8 +633,8 @@ pub trait Renderer: text::Renderer + Sized {
impl<'a, Message, Renderer> From<TextInput<'a, Message, Renderer>>
for Element<'a, Message, Renderer>
where
- Renderer: 'a + self::Renderer,
Message: 'a + Clone,
+ Renderer: 'a + self::Renderer,
{
fn from(
text_input: TextInput<'a, Message, Renderer>,
diff --git a/src/application.rs b/src/application.rs
index d46cd2ac..d9e25ad4 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -65,7 +65,7 @@ use crate::{Color, Command, Element, Executor, Settings, Subscription};
/// struct Hello;
///
/// impl Application for Hello {
-/// type Executor = executor::Null;
+/// type Executor = executor::Default;
/// type Message = ();
/// type Flags = ();
///
diff --git a/src/executor.rs b/src/executor.rs
index 59d59a5a..ea6ab14a 100644
--- a/src/executor.rs
+++ b/src/executor.rs
@@ -1,5 +1,5 @@
//! Choose your preferred executor to power your application.
-pub use crate::runtime::{executor::Null, Executor};
+pub use crate::runtime::Executor;
pub use platform::Default;
diff --git a/src/sandbox.rs b/src/sandbox.rs
index c72b58d8..5a668e39 100644
--- a/src/sandbox.rs
+++ b/src/sandbox.rs
@@ -1,4 +1,3 @@
-use crate::executor;
use crate::{
Application, Color, Command, Element, Error, Settings, Subscription,
};
@@ -172,7 +171,7 @@ impl<T> Application for T
where
T: Sandbox,
{
- type Executor = executor::Null;
+ type Executor = crate::runtime::executor::Null;
type Flags = ();
type Message = T::Message;
diff --git a/winit/Cargo.toml b/winit/Cargo.toml
index 06e5df9a..7cf62821 100644
--- a/winit/Cargo.toml
+++ b/winit/Cargo.toml
@@ -14,7 +14,7 @@ categories = ["gui"]
debug = ["iced_native/debug"]
[dependencies]
-winit = "0.22"
+winit = "0.23"
window_clipboard = "0.1"
log = "0.4"
thiserror = "1.0"
diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs
index 638787ab..de38f246 100644
--- a/winit/src/conversion.rs
+++ b/winit/src/conversion.rs
@@ -127,7 +127,7 @@ pub fn window_event(
/// [`Mode`]: ../enum.Mode.html
/// [`winit`]: https://github.com/rust-windowing/winit
pub fn fullscreen(
- monitor: winit::monitor::MonitorHandle,
+ monitor: Option<winit::monitor::MonitorHandle>,
mode: Mode,
) -> Option<winit::window::Fullscreen> {
match mode {
@@ -299,7 +299,8 @@ pub fn key_code(virtual_keycode: winit::event::VirtualKeyCode) -> KeyCode {
winit::event::VirtualKeyCode::Numpad9 => KeyCode::Numpad9,
winit::event::VirtualKeyCode::AbntC1 => KeyCode::AbntC1,
winit::event::VirtualKeyCode::AbntC2 => KeyCode::AbntC2,
- winit::event::VirtualKeyCode::Add => KeyCode::Add,
+ winit::event::VirtualKeyCode::NumpadAdd => KeyCode::NumpadAdd,
+ winit::event::VirtualKeyCode::Plus => KeyCode::Plus,
winit::event::VirtualKeyCode::Apostrophe => KeyCode::Apostrophe,
winit::event::VirtualKeyCode::Apps => KeyCode::Apps,
winit::event::VirtualKeyCode::At => KeyCode::At,
@@ -310,8 +311,8 @@ pub fn key_code(virtual_keycode: winit::event::VirtualKeyCode) -> KeyCode {
winit::event::VirtualKeyCode::Colon => KeyCode::Colon,
winit::event::VirtualKeyCode::Comma => KeyCode::Comma,
winit::event::VirtualKeyCode::Convert => KeyCode::Convert,
- winit::event::VirtualKeyCode::Decimal => KeyCode::Decimal,
- winit::event::VirtualKeyCode::Divide => KeyCode::Divide,
+ winit::event::VirtualKeyCode::NumpadDecimal => KeyCode::NumpadDecimal,
+ winit::event::VirtualKeyCode::NumpadDivide => KeyCode::NumpadDivide,
winit::event::VirtualKeyCode::Equals => KeyCode::Equals,
winit::event::VirtualKeyCode::Grave => KeyCode::Grave,
winit::event::VirtualKeyCode::Kana => KeyCode::Kana,
@@ -325,7 +326,7 @@ pub fn key_code(virtual_keycode: winit::event::VirtualKeyCode) -> KeyCode {
winit::event::VirtualKeyCode::MediaSelect => KeyCode::MediaSelect,
winit::event::VirtualKeyCode::MediaStop => KeyCode::MediaStop,
winit::event::VirtualKeyCode::Minus => KeyCode::Minus,
- winit::event::VirtualKeyCode::Multiply => KeyCode::Multiply,
+ winit::event::VirtualKeyCode::NumpadMultiply => KeyCode::NumpadMultiply,
winit::event::VirtualKeyCode::Mute => KeyCode::Mute,
winit::event::VirtualKeyCode::MyComputer => KeyCode::MyComputer,
winit::event::VirtualKeyCode::NavigateForward => {
@@ -353,7 +354,7 @@ pub fn key_code(virtual_keycode: winit::event::VirtualKeyCode) -> KeyCode {
winit::event::VirtualKeyCode::Slash => KeyCode::Slash,
winit::event::VirtualKeyCode::Sleep => KeyCode::Sleep,
winit::event::VirtualKeyCode::Stop => KeyCode::Stop,
- winit::event::VirtualKeyCode::Subtract => KeyCode::Subtract,
+ winit::event::VirtualKeyCode::NumpadSubtract => KeyCode::NumpadSubtract,
winit::event::VirtualKeyCode::Sysrq => KeyCode::Sysrq,
winit::event::VirtualKeyCode::Tab => KeyCode::Tab,
winit::event::VirtualKeyCode::Underline => KeyCode::Underline,
@@ -372,6 +373,7 @@ pub fn key_code(virtual_keycode: winit::event::VirtualKeyCode) -> KeyCode {
winit::event::VirtualKeyCode::Copy => KeyCode::Copy,
winit::event::VirtualKeyCode::Paste => KeyCode::Paste,
winit::event::VirtualKeyCode::Cut => KeyCode::Cut,
+ winit::event::VirtualKeyCode::Asterisk => KeyCode::Asterisk,
}
}
diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index e0d2c569..a6b96ec7 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -64,7 +64,7 @@ impl Window {
self,
title: &str,
mode: Mode,
- primary_monitor: MonitorHandle,
+ primary_monitor: Option<MonitorHandle>,
) -> WindowBuilder {
let mut window_builder = WindowBuilder::new();