From 1a8d676f5bc14b53d27c7f69a855cdb991e78071 Mon Sep 17 00:00:00 2001 From: Tom Maisey Date: Fri, 30 Aug 2019 09:22:16 +0100 Subject: [PATCH] Respect GridItem min/max width/height --- modules/juce_gui_basics/layout/juce_Grid.cpp | 26 ++++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/modules/juce_gui_basics/layout/juce_Grid.cpp b/modules/juce_gui_basics/layout/juce_Grid.cpp index b357411123..eb43a99b6d 100644 --- a/modules/juce_gui_basics/layout/juce_Grid.cpp +++ b/modules/juce_gui_basics/layout/juce_Grid.cpp @@ -918,26 +918,20 @@ struct Grid::BoxAlignment // align and justify auto r = area; - if (item.width != (float) GridItem::notAssigned) - r.setWidth (item.width); - - if (item.height != (float) GridItem::notAssigned) - r.setHeight (item.height); + if (item.width != (float) GridItem::notAssigned) r.setWidth (item.width); + if (item.height != (float) GridItem::notAssigned) r.setHeight (item.height); + if (item.maxWidth != GridItem::notAssigned) r.setWidth (jmin (item.maxWidth, r.getWidth())); + if (item.minWidth != GridItem::notAssigned) r.setWidth (jmax (item.minWidth, r.getWidth())); + if (item.maxHeight != GridItem::notAssigned) r.setHeight (jmin (item.maxHeight, r.getHeight())); + if (item.minHeight != GridItem::notAssigned) r.setHeight (jmax (item.minHeight, r.getHeight())); if (alignType == Grid::AlignItems::start && justifyType == Grid::JustifyItems::start) return r; - if (alignType == Grid::AlignItems::end) - r.setY (r.getY() + (area.getHeight() - r.getHeight())); - - if (justifyType == Grid::JustifyItems::end) - r.setX (r.getX() + (area.getWidth() - r.getWidth())); - - if (alignType == Grid::AlignItems::center) - r.setCentre (r.getCentreX(), area.getCentreY()); - - if (justifyType == Grid::JustifyItems::center) - r.setCentre (area.getCentreX(), r.getCentreY()); + if (alignType == Grid::AlignItems::end) r.setY (r.getY() + (area.getHeight() - r.getHeight())); + if (justifyType == Grid::JustifyItems::end) r.setX (r.getX() + (area.getWidth() - r.getWidth())); + if (alignType == Grid::AlignItems::center) r.setCentre (r.getCentreX(), area.getCentreY()); + if (justifyType == Grid::JustifyItems::center) r.setCentre (area.getCentreX(), r.getCentreY()); return r; }