diff --git a/modules/juce_gui_basics/layout/juce_Grid.cpp b/modules/juce_gui_basics/layout/juce_Grid.cpp index 87ecce0fa7..f3c97ec303 100644 --- a/modules/juce_gui_basics/layout/juce_Grid.cpp +++ b/modules/juce_gui_basics/layout/juce_Grid.cpp @@ -310,8 +310,9 @@ struct Grid::PlacementHelpers for (const auto& areaString : areasStrings) strings.add (juce::StringArray::fromTokens (areaString, false)); - for (auto s : strings) - jassert (s.size() == strings[0].size()); // all rows must have the same number of columns + if (strings.size() > 0) + for (auto s : strings) + jassert (s.size() == strings[0].size()); // all rows must have the same number of columns return strings; } @@ -629,8 +630,12 @@ struct Grid::AutoPlacement int getHighestCrossDimension() const { - return std::max (getCrossDimension ({ occupiedCells.crbegin()->column, occupiedCells.crbegin()->row }), - highestCrossDimension); + Cell cell { 1, 1 }; + + if (occupiedCells.size() > 0) + cell = { occupiedCells.crbegin()->column, occupiedCells.crbegin()->row }; + + return std::max (getCrossDimension (cell), highestCrossDimension); } Cell advance (Cell cell) const diff --git a/modules/juce_gui_basics/layout/juce_GridItem.cpp b/modules/juce_gui_basics/layout/juce_GridItem.cpp index ce613ed380..63101d9aa2 100644 --- a/modules/juce_gui_basics/layout/juce_GridItem.cpp +++ b/modules/juce_gui_basics/layout/juce_GridItem.cpp @@ -61,9 +61,15 @@ GridItem::Property::Property (Span spanToUse) noexcept GridItem::Margin::Margin() noexcept : left(), right(), top(), bottom() {} +GridItem::Margin::Margin (int v) noexcept : GridItem::Margin::Margin (static_cast (v)) +{} + GridItem::Margin::Margin (float v) noexcept : left (v), right (v), top (v), bottom (v) {} +GridItem::Margin::Margin (float t, float r, float b, float l) noexcept : left (l), right (r), top (t), bottom (b) +{} + //============================================================================== GridItem::GridItem() noexcept {} GridItem::~GridItem() noexcept {} diff --git a/modules/juce_gui_basics/layout/juce_GridItem.h b/modules/juce_gui_basics/layout/juce_GridItem.h index e8d6c0267d..e529079465 100644 --- a/modules/juce_gui_basics/layout/juce_GridItem.h +++ b/modules/juce_gui_basics/layout/juce_GridItem.h @@ -160,7 +160,9 @@ public: struct Margin { Margin() noexcept; + Margin (int size) noexcept; Margin (float size) noexcept; + Margin (float top, float right, float bottom, float left) noexcept; /**< Creates a margin with these sizes. */ float left; float right;