mirror of
https://github.com/emilk/egui.git
synced 2026-09-01 22:30:03 -04:00
Overload operators for Rect + Margin, Rect - Margin etc (#4277)
It's more ergonomic
This commit is contained in:
@@ -240,7 +240,7 @@ impl Frame {
|
||||
let where_to_put_background = ui.painter().add(Shape::Noop);
|
||||
let outer_rect_bounds = ui.available_rect_before_wrap();
|
||||
|
||||
let mut inner_rect = (self.inner_margin + self.outer_margin).shrink_rect(outer_rect_bounds);
|
||||
let mut inner_rect = outer_rect_bounds - self.outer_margin - self.inner_margin;
|
||||
|
||||
// Make sure we don't shrink to the negative:
|
||||
inner_rect.max.x = inner_rect.max.x.max(inner_rect.min.x);
|
||||
@@ -299,7 +299,7 @@ impl Frame {
|
||||
|
||||
impl Prepared {
|
||||
fn content_with_margin(&self) -> Rect {
|
||||
(self.frame.inner_margin + self.frame.outer_margin).expand_rect(self.content_ui.min_rect())
|
||||
self.content_ui.min_rect() + self.frame.inner_margin + self.frame.outer_margin
|
||||
}
|
||||
|
||||
/// Allocate the the space that was used by [`Self::content_ui`].
|
||||
@@ -315,10 +315,7 @@ impl Prepared {
|
||||
///
|
||||
/// This can be called before or after [`Self::allocate_space`].
|
||||
pub fn paint(&self, ui: &Ui) {
|
||||
let paint_rect = self
|
||||
.frame
|
||||
.inner_margin
|
||||
.expand_rect(self.content_ui.min_rect());
|
||||
let paint_rect = self.content_ui.min_rect() + self.frame.inner_margin;
|
||||
|
||||
if ui.is_rect_visible(paint_rect) {
|
||||
let shape = self.frame.paint(paint_rect);
|
||||
|
||||
@@ -397,7 +397,7 @@ impl<'t> TextEdit<'t> {
|
||||
// TODO(emilk): return full outer_rect in `TextEditOutput`.
|
||||
// Can't do it now because this fix is ging into a patch release.
|
||||
let outer_rect = output.response.rect;
|
||||
let inner_rect = margin.shrink_rect(outer_rect);
|
||||
let inner_rect = outer_rect - margin;
|
||||
output.response.rect = inner_rect;
|
||||
|
||||
if frame {
|
||||
@@ -501,7 +501,7 @@ impl<'t> TextEdit<'t> {
|
||||
let desired_inner_size = vec2(desired_width, galley.size().y.max(desired_height));
|
||||
let desired_outer_size = (desired_inner_size + margin.sum()).at_least(min_size);
|
||||
let (auto_id, outer_rect) = ui.allocate_space(desired_outer_size);
|
||||
let rect = margin.shrink_rect(outer_rect); // inner rect (excluding frame/margin).
|
||||
let rect = outer_rect - margin; // inner rect (excluding frame/margin).
|
||||
|
||||
let id = id.unwrap_or_else(|| {
|
||||
if let Some(id_source) = id_source {
|
||||
|
||||
Reference in New Issue
Block a user