Revert system menus support
The current implementation has some important issues on Windows. We will reintroduce the feature once we figure them out! I have kept some of the changes in #945, like the new `keyboard::Modifiers` powered by `bitflags`.
This commit is contained in:
parent
93fec8d273
commit
c0ab988842
21 changed files with 19 additions and 673 deletions
|
|
@ -6,7 +6,6 @@ mod style;
|
|||
use grid::Grid;
|
||||
use iced::button::{self, Button};
|
||||
use iced::executor;
|
||||
use iced::menu::{self, Menu};
|
||||
use iced::pick_list::{self, PickList};
|
||||
use iced::slider::{self, Slider};
|
||||
use iced::time;
|
||||
|
|
@ -130,13 +129,6 @@ impl Application for GameOfLife {
|
|||
}
|
||||
}
|
||||
|
||||
fn menu(&self) -> Menu<Message> {
|
||||
Menu::with_entries(vec![menu::Entry::dropdown(
|
||||
"Presets",
|
||||
Preset::menu().map(Message::PresetPicked),
|
||||
)])
|
||||
}
|
||||
|
||||
fn view(&mut self) -> Element<Message> {
|
||||
let version = self.version;
|
||||
let selected_speed = self.next_speed.unwrap_or(self.speed);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
use iced::menu::{self, Menu};
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum Preset {
|
||||
Custom,
|
||||
|
|
@ -28,17 +26,6 @@ pub static ALL: &[Preset] = &[
|
|||
];
|
||||
|
||||
impl Preset {
|
||||
pub fn menu() -> Menu<Self> {
|
||||
Menu::with_entries(
|
||||
ALL.iter()
|
||||
.copied()
|
||||
.map(|preset| {
|
||||
menu::Entry::item(preset.to_string(), None, preset)
|
||||
})
|
||||
.collect(),
|
||||
)
|
||||
}
|
||||
|
||||
pub fn life(self) -> Vec<(isize, isize)> {
|
||||
#[rustfmt::skip]
|
||||
let cells = match self {
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
[package]
|
||||
name = "menu"
|
||||
version = "0.1.0"
|
||||
authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>"]
|
||||
edition = "2018"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
iced = { path = "../.." }
|
||||
iced_native = { path = "../../native" }
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
use iced::menu::{self, Menu};
|
||||
use iced::{
|
||||
executor, Application, Command, Container, Element, Length, Settings, Text,
|
||||
};
|
||||
use iced_native::keyboard::{Hotkey, KeyCode, Modifiers};
|
||||
|
||||
pub fn main() -> iced::Result {
|
||||
App::run(Settings::default())
|
||||
}
|
||||
|
||||
#[derive(Debug, Default)]
|
||||
struct App {
|
||||
selected: Option<Entry>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum Entry {
|
||||
One,
|
||||
Two,
|
||||
Three,
|
||||
A,
|
||||
B,
|
||||
C,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum Message {
|
||||
MenuActivated(Entry),
|
||||
}
|
||||
|
||||
impl Application for App {
|
||||
type Executor = executor::Default;
|
||||
type Message = Message;
|
||||
type Flags = ();
|
||||
|
||||
fn new(_flags: ()) -> (App, Command<Message>) {
|
||||
(App::default(), Command::none())
|
||||
}
|
||||
|
||||
fn title(&self) -> String {
|
||||
String::from("Menu - Iced")
|
||||
}
|
||||
|
||||
fn menu(&self) -> Menu<Message> {
|
||||
let alt = Modifiers::ALT;
|
||||
let ctrl_shift = Modifiers::CTRL | Modifiers::SHIFT;
|
||||
|
||||
Menu::with_entries(vec![
|
||||
menu::Entry::dropdown(
|
||||
"First",
|
||||
Menu::with_entries(vec![
|
||||
menu::Entry::item(
|
||||
"One",
|
||||
Hotkey::new(alt, KeyCode::F1),
|
||||
Message::MenuActivated(Entry::One),
|
||||
),
|
||||
menu::Entry::item(
|
||||
"Two",
|
||||
Hotkey::new(alt, KeyCode::F2),
|
||||
Message::MenuActivated(Entry::Two),
|
||||
),
|
||||
menu::Entry::Separator,
|
||||
menu::Entry::item(
|
||||
"Three",
|
||||
Hotkey::new(alt, KeyCode::F3),
|
||||
Message::MenuActivated(Entry::Three),
|
||||
),
|
||||
]),
|
||||
),
|
||||
menu::Entry::dropdown(
|
||||
"Second",
|
||||
Menu::with_entries(vec![
|
||||
menu::Entry::item(
|
||||
"A",
|
||||
Hotkey::new(ctrl_shift, KeyCode::A),
|
||||
Message::MenuActivated(Entry::A),
|
||||
),
|
||||
menu::Entry::item(
|
||||
"B",
|
||||
Hotkey::new(ctrl_shift, KeyCode::B),
|
||||
Message::MenuActivated(Entry::B),
|
||||
),
|
||||
menu::Entry::Separator,
|
||||
menu::Entry::item(
|
||||
"C",
|
||||
Hotkey::new(ctrl_shift, KeyCode::C),
|
||||
Message::MenuActivated(Entry::C),
|
||||
),
|
||||
]),
|
||||
),
|
||||
])
|
||||
}
|
||||
|
||||
fn update(&mut self, message: Message) -> Command<Message> {
|
||||
match message {
|
||||
Message::MenuActivated(entry) => self.selected = Some(entry),
|
||||
}
|
||||
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn view(&mut self) -> Element<Message> {
|
||||
Container::new(
|
||||
Text::new(format!("Selected {:?}", self.selected)).size(48),
|
||||
)
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill)
|
||||
.center_x()
|
||||
.center_y()
|
||||
.into()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue