Merge branch 'master' into dev/system-information
This commit is contained in:
commit
27fdc70756
90 changed files with 1363 additions and 334 deletions
9
examples/pure/tooltip/Cargo.toml
Normal file
9
examples/pure/tooltip/Cargo.toml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[package]
|
||||
name = "pure_tooltip"
|
||||
version = "0.1.0"
|
||||
authors = ["Héctor Ramón Jiménez <hector0193@gmail.com>", "Casper Rogild Storm"]
|
||||
edition = "2021"
|
||||
publish = false
|
||||
|
||||
[dependencies]
|
||||
iced = { path = "../../..", features = ["pure"] }
|
||||
93
examples/pure/tooltip/src/main.rs
Normal file
93
examples/pure/tooltip/src/main.rs
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
use iced::pure::{
|
||||
button, container, tooltip, widget::tooltip::Position, Element, Sandbox,
|
||||
};
|
||||
use iced::{Length, Settings};
|
||||
|
||||
pub fn main() -> iced::Result {
|
||||
Example::run(Settings::default())
|
||||
}
|
||||
|
||||
struct Example {
|
||||
position: Position,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
enum Message {
|
||||
ChangePosition,
|
||||
}
|
||||
|
||||
impl Sandbox for Example {
|
||||
type Message = Message;
|
||||
|
||||
fn new() -> Self {
|
||||
Self {
|
||||
position: Position::Bottom,
|
||||
}
|
||||
}
|
||||
|
||||
fn title(&self) -> String {
|
||||
String::from("Tooltip - Iced")
|
||||
}
|
||||
|
||||
fn update(&mut self, message: Message) {
|
||||
match message {
|
||||
Message::ChangePosition => {
|
||||
let position = match &self.position {
|
||||
Position::FollowCursor => Position::Top,
|
||||
Position::Top => Position::Bottom,
|
||||
Position::Bottom => Position::Left,
|
||||
Position::Left => Position::Right,
|
||||
Position::Right => Position::FollowCursor,
|
||||
};
|
||||
|
||||
self.position = position
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn view(&self) -> Element<Message> {
|
||||
let tooltip = tooltip(
|
||||
button("Press to change position")
|
||||
.on_press(Message::ChangePosition),
|
||||
position_to_text(self.position),
|
||||
self.position,
|
||||
)
|
||||
.gap(10)
|
||||
.style(style::Tooltip);
|
||||
|
||||
container(tooltip)
|
||||
.width(Length::Fill)
|
||||
.height(Length::Fill)
|
||||
.center_x()
|
||||
.center_y()
|
||||
.into()
|
||||
}
|
||||
}
|
||||
|
||||
fn position_to_text<'a>(position: Position) -> &'a str {
|
||||
match position {
|
||||
Position::FollowCursor => "Follow Cursor",
|
||||
Position::Top => "Top",
|
||||
Position::Bottom => "Bottom",
|
||||
Position::Left => "Left",
|
||||
Position::Right => "Right",
|
||||
}
|
||||
}
|
||||
|
||||
mod style {
|
||||
use iced::container;
|
||||
use iced::Color;
|
||||
|
||||
pub struct Tooltip;
|
||||
|
||||
impl container::StyleSheet for Tooltip {
|
||||
fn style(&self) -> container::Style {
|
||||
container::Style {
|
||||
text_color: Some(Color::from_rgb8(0xEE, 0xEE, 0xEE)),
|
||||
background: Some(Color::from_rgb(0.11, 0.42, 0.87).into()),
|
||||
border_radius: 12.0,
|
||||
..container::Style::default()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue