2 ==============================================================================
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
7 JUCE is an open source library subject to commercial or open-source
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
23 ==============================================================================
29 StretchableLayoutResizerBar::StretchableLayoutResizerBar (StretchableLayoutManager
* layout_
,
36 setRepaintsOnMouseActivity (true);
37 setMouseCursor (vertical
? MouseCursor::LeftRightResizeCursor
38 : MouseCursor::UpDownResizeCursor
);
41 StretchableLayoutResizerBar::~StretchableLayoutResizerBar()
45 //==============================================================================
46 void StretchableLayoutResizerBar::paint (Graphics
& g
)
48 getLookAndFeel().drawStretchableLayoutResizerBar (g
,
49 getWidth(), getHeight(),
55 void StretchableLayoutResizerBar::mouseDown (const MouseEvent
&)
57 mouseDownPos
= layout
->getItemCurrentPosition (itemIndex
);
60 void StretchableLayoutResizerBar::mouseDrag (const MouseEvent
& e
)
62 const int desiredPos
= mouseDownPos
+ (isVertical
? e
.getDistanceFromDragStartX()
63 : e
.getDistanceFromDragStartY());
66 if (layout
->getItemCurrentPosition (itemIndex
) != desiredPos
)
68 layout
->setItemPosition (itemIndex
, desiredPos
);
73 void StretchableLayoutResizerBar::hasBeenMoved()
75 if (Component
* parent
= getParentComponent())