mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 04:40:03 -04:00
Let a Popup carry classes
This commit is contained in:
@@ -7,7 +7,7 @@ use crate::{
|
|||||||
Sense, Ui, UiKind, UiStackInfo,
|
Sense, Ui, UiKind, UiStackInfo,
|
||||||
containers::menu::{MenuConfig, MenuState, menu_style},
|
containers::menu::{MenuConfig, MenuState, menu_style},
|
||||||
style::StyleModifier,
|
style::StyleModifier,
|
||||||
widget_style::{Classes, HasClasses as _, MENU_CLASS, PopupStyle},
|
widget_style::{Classes, HasClasses, MENU_CLASS, PopupStyle},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// What should we anchor the popup to?
|
/// What should we anchor the popup to?
|
||||||
@@ -186,6 +186,17 @@ pub struct Popup<'a> {
|
|||||||
layout: Layout,
|
layout: Layout,
|
||||||
frame: Option<Frame>,
|
frame: Option<Frame>,
|
||||||
style: StyleModifier,
|
style: StyleModifier,
|
||||||
|
classes: Classes,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl HasClasses for Popup<'_> {
|
||||||
|
fn classes(&self) -> &Classes {
|
||||||
|
&self.classes
|
||||||
|
}
|
||||||
|
|
||||||
|
fn classes_mut(&mut self) -> &mut Classes {
|
||||||
|
&mut self.classes
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Popup<'a> {
|
impl<'a> Popup<'a> {
|
||||||
@@ -210,6 +221,7 @@ impl<'a> Popup<'a> {
|
|||||||
layout: Layout::default(),
|
layout: Layout::default(),
|
||||||
frame: None,
|
frame: None,
|
||||||
style: StyleModifier::default(),
|
style: StyleModifier::default(),
|
||||||
|
classes: Classes::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -578,6 +590,7 @@ impl<'a> Popup<'a> {
|
|||||||
layout,
|
layout,
|
||||||
frame,
|
frame,
|
||||||
style,
|
style,
|
||||||
|
mut classes,
|
||||||
} = self;
|
} = self;
|
||||||
|
|
||||||
if kind != PopupKind::Tooltip {
|
if kind != PopupKind::Tooltip {
|
||||||
@@ -594,7 +607,7 @@ impl<'a> Popup<'a> {
|
|||||||
|
|
||||||
let (pivot, anchor) = best_align.pivot_pos(&anchor_rect, gap);
|
let (pivot, anchor) = best_align.pivot_pos(&anchor_rect, gap);
|
||||||
|
|
||||||
let classes = Classes::default().with_class_if(MENU_CLASS, kind == PopupKind::Menu);
|
classes.add_class_if(MENU_CLASS, kind == PopupKind::Menu);
|
||||||
|
|
||||||
let mut area = Area::new(id)
|
let mut area = Area::new(id)
|
||||||
.with_classes(classes.clone())
|
.with_classes(classes.clone())
|
||||||
|
|||||||
Reference in New Issue
Block a user