Add `Response::paint_debug_info()` to make it easy to visualize a widget's id and state (#4056)
This PR adds a new `paint_debug_info()` debug method to `Response` in order to draw the response's `Rect`, it's id, and some of its state (active, hovered) via a color code: 
This commit is contained in:
parent
a0473c5a0a
commit
d468d43dad
|
|
@ -798,6 +798,30 @@ impl Response {
|
||||||
pub fn context_menu(&self, add_contents: impl FnOnce(&mut Ui)) -> Option<InnerResponse<()>> {
|
pub fn context_menu(&self, add_contents: impl FnOnce(&mut Ui)) -> Option<InnerResponse<()>> {
|
||||||
menu::context_menu(self, add_contents)
|
menu::context_menu(self, add_contents)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Draw a debug rectangle over the response displaying the response's id and whether it is
|
||||||
|
/// enabled and/or hovered.
|
||||||
|
///
|
||||||
|
/// This function is intended for debugging purpose and can be useful, for example, in case of
|
||||||
|
/// widget id instability.
|
||||||
|
///
|
||||||
|
/// Color code:
|
||||||
|
/// - Blue: Enabled but not hovered
|
||||||
|
/// - Green: Enabled and hovered
|
||||||
|
/// - Red: Disabled
|
||||||
|
pub fn paint_debug_info(&self) {
|
||||||
|
self.ctx.debug_painter().debug_rect(
|
||||||
|
self.rect,
|
||||||
|
if self.hovered {
|
||||||
|
crate::Color32::DARK_GREEN
|
||||||
|
} else if self.enabled {
|
||||||
|
crate::Color32::BLUE
|
||||||
|
} else {
|
||||||
|
crate::Color32::RED
|
||||||
|
},
|
||||||
|
format!("{:?}", self.id),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Response {
|
impl Response {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue