JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_BorderedComponentBoundsConstrainer.cpp
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
31 const Rectangle<int>& limits,
32 bool isStretchingTop,
36{
37 if (auto* decorated = getWrappedConstrainer())
38 {
39 const auto border = getAdditionalBorder();
40 const auto requestedBounds = bounds;
41
42 border.subtractFrom (bounds);
43 decorated->checkBounds (bounds,
44 border.subtractedFrom (previousBounds),
45 limits,
50 border.addTo (bounds);
51 bounds = bounds.withPosition (requestedBounds.getPosition());
52
54 bounds = bounds.withBottomY (previousBounds.getBottom());
55
57 bounds = bounds.withY (previousBounds.getY());
58
60 bounds = bounds.withRightX (previousBounds.getRight());
61
63 bounds = bounds.withX (previousBounds.getX());
64 }
65 else
66 {
69 limits,
74 }
75}
76
77} // namespace juce
void checkBounds(Rectangle< int > &bounds, const Rectangle< int > &previousBounds, const Rectangle< int > &limits, bool isStretchingTop, bool isStretchingLeft, bool isStretchingBottom, bool isStretchingRight) override
This callback changes the given coordinates to impose whatever the current constraints are set to be.
virtual BorderSize< int > getAdditionalBorder() const =0
Returns the border that should be applied to the constrained bounds.
virtual ComponentBoundsConstrainer * getWrappedConstrainer() const =0
Returns a pointer to another constrainer that will be used as the base for any resizing operations.
virtual void checkBounds(Rectangle< int > &bounds, const Rectangle< int > &previousBounds, const Rectangle< int > &limits, bool isStretchingTop, bool isStretchingLeft, bool isStretchingBottom, bool isStretchingRight)
This callback changes the given coordinates to impose whatever the current constraints are set to be.
Manages a rectangle and allows geometric operations to be performed on it.
Rectangle withX(ValueType newX) const noexcept
Returns a rectangle which has the same size and y-position as this one, but with a different x-positi...
Rectangle withPosition(ValueType newX, ValueType newY) const noexcept
Returns a rectangle with the same size as this one, but a new position.
Rectangle withBottomY(ValueType newBottomY) const noexcept
Returns a rectangle which has the same size and x-position as this one, but whose bottom edge has the...
Rectangle withRightX(ValueType newRightX) const noexcept
Returns a rectangle which has the same size and y-position as this one, but whose right-hand edge has...
Rectangle withY(ValueType newY) const noexcept
Returns a rectangle which has the same size and x-position as this one, but with a different y-positi...
JUCE Namespace.
Type unalignedPointerCast(void *ptr) noexcept
Casts a pointer to another type via void*, which suppresses the cast-align warning which sometimes ar...
Definition juce_Memory.h:88