fix: button styling
This commit is contained in:
parent
dc10c77b41
commit
ffa67981a8
4 changed files with 57 additions and 33 deletions
|
|
@ -12,11 +12,12 @@ use cosmic::iced::widget::column;
|
|||
use cosmic::iced::Length;
|
||||
use cosmic::iced_core::Size;
|
||||
use cosmic::surface_message::{MessageWrapper, SurfaceMessage, SurfaceMessageHandler};
|
||||
use cosmic::widget::button;
|
||||
use cosmic::widget::icon::{from_name, Handle};
|
||||
use cosmic::widget::menu::KeyBind;
|
||||
use cosmic::widget::{button, text};
|
||||
use cosmic::widget::{
|
||||
container,
|
||||
menu::menu_button,
|
||||
menu::{self, action::MenuAction},
|
||||
nav_bar, responsive,
|
||||
};
|
||||
|
|
@ -329,35 +330,42 @@ impl cosmic::Application for App {
|
|||
),
|
||||
(menu::root("hi 4"), {
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu::root("hi 41 extra root"),
|
||||
vec![menu::Tree::with_children(menu::root("hi 41 extra 2"), {
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu::root("hi 41 extra root"),
|
||||
vec![menu::Tree::with_children(
|
||||
menu::root("hi 41 extra 2"),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button(
|
||||
"hi 41 extra root item",
|
||||
None,
|
||||
Action::Hi,
|
||||
)],
|
||||
),
|
||||
)],
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
&self.keybinds,
|
||||
vec![
|
||||
menu::Item::Button("hi 42", None, Action::Hi),
|
||||
menu::Item::Button("hi 43", None, Action::Hi),
|
||||
menu::Item::Button("hi 44", None, Action::Hi),
|
||||
menu::Item::Button("hi 45", None, Action::Hi),
|
||||
menu::Item::Button("hi 46", None, Action::Hi),
|
||||
],
|
||||
);
|
||||
root_items.append(&mut items);
|
||||
root_items
|
||||
})],
|
||||
menu_button(vec![text("hi 41 extra root").into()])
|
||||
.on_press(Message::Hi),
|
||||
vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra 2").into()])
|
||||
.on_press(Message::Hi),
|
||||
{
|
||||
let mut root_items = vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra root").into()])
|
||||
.on_press(Message::Hi),
|
||||
vec![menu::Tree::with_children(
|
||||
menu_button(vec![text("hi 41 extra 2").into()])
|
||||
.on_press(Message::Hi),
|
||||
menu::items(
|
||||
&self.keybinds,
|
||||
vec![menu::Item::Button(
|
||||
"hi 41 extra root item",
|
||||
None,
|
||||
Action::Hi,
|
||||
)],
|
||||
),
|
||||
)],
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
&self.keybinds,
|
||||
vec![
|
||||
menu::Item::Button("hi 42", None, Action::Hi),
|
||||
menu::Item::Button("hi 43", None, Action::Hi),
|
||||
menu::Item::Button("hi 44", None, Action::Hi),
|
||||
menu::Item::Button("hi 45", None, Action::Hi),
|
||||
menu::Item::Button("hi 46", None, Action::Hi),
|
||||
],
|
||||
);
|
||||
root_items.append(&mut items);
|
||||
root_items
|
||||
},
|
||||
)],
|
||||
)];
|
||||
let mut items = menu::items(
|
||||
&self.keybinds,
|
||||
|
|
|
|||
|
|
@ -441,7 +441,14 @@ impl Core {
|
|||
trees
|
||||
.into_iter()
|
||||
.map(|mt| {
|
||||
menu::Tree::<_>::with_children(mt.0.width(Length::Fill), mt.1)
|
||||
menu::Tree::<_>::with_children(
|
||||
mt.0.width(Length::Fill)
|
||||
.height(Length::Fixed(36.0))
|
||||
.padding([4, 16])
|
||||
.class(crate::theme::Button::MenuItem)
|
||||
.force_enabled(true),
|
||||
mt.1,
|
||||
)
|
||||
})
|
||||
.collect(),
|
||||
)]),
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ pub enum SurfaceMessage {
|
|||
},
|
||||
}
|
||||
|
||||
#[cfg(feature = "wayland")]
|
||||
impl std::fmt::Debug for SurfaceMessage {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ pub struct Button<'a, Message> {
|
|||
selected: bool,
|
||||
style: crate::theme::Button,
|
||||
variant: Variant<Message>,
|
||||
force_enabled: bool,
|
||||
}
|
||||
|
||||
impl<'a, Message> Button<'a, Message> {
|
||||
|
|
@ -77,6 +78,7 @@ impl<'a, Message> Button<'a, Message> {
|
|||
selected: false,
|
||||
style: crate::theme::Button::default(),
|
||||
variant: Variant::Normal,
|
||||
force_enabled: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -90,6 +92,7 @@ impl<'a, Message> Button<'a, Message> {
|
|||
name: None,
|
||||
#[cfg(feature = "a11y")]
|
||||
description: None,
|
||||
force_enabled: false,
|
||||
#[cfg(feature = "a11y")]
|
||||
label: None,
|
||||
content: content.into(),
|
||||
|
|
@ -163,6 +166,12 @@ impl<'a, Message> Button<'a, Message> {
|
|||
self
|
||||
}
|
||||
|
||||
/// Sets the the [`Button`] to enabled whether or not it has handlers for on press.
|
||||
pub fn force_enabled(mut self, enabled: bool) -> Self {
|
||||
self.force_enabled = enabled;
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the widget to a selected state.
|
||||
///
|
||||
/// Displays a selection indicator on image buttons.
|
||||
|
|
@ -348,7 +357,8 @@ impl<'a, Message: 'a + Clone> Widget<Message, crate::Theme, crate::Renderer>
|
|||
|
||||
let mut headerbar_alpha = None;
|
||||
|
||||
let is_enabled = self.on_press.is_some() || self.on_press_down.is_some();
|
||||
let is_enabled =
|
||||
self.on_press.is_some() || self.on_press_down.is_some() || self.force_enabled;
|
||||
let is_mouse_over = cursor.position().is_some_and(|p| bounds.contains(p));
|
||||
|
||||
let state = tree.state.downcast_ref::<State>();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue