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_RelativeCoordinatePositioner.h
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
29//==============================================================================
36 public ComponentListener,
38{
39public:
42
43 void componentMovedOrResized (Component&, bool, bool) override;
44 void componentParentHierarchyChanged (Component&) override;
45 void componentChildrenChanged (Component&) override;
46 void componentBeingDeleted (Component&) override;
47 void markersChanged (MarkerList*) override;
48 void markerListBeingDeleted (MarkerList*) override;
49
50 void apply();
51
52 bool addCoordinate (const RelativeCoordinate&);
53 bool addPoint (const RelativePoint&);
54
55 //==============================================================================
58 {
59 public:
61
62 Expression getSymbolValue (const String& symbol) const override;
63 void visitRelativeScope (const String& scopeName, Visitor&) const override;
64 String getScopeUID() const override;
65
66 protected:
67 Component& component;
68
69 Component* findSiblingComponent (const String& componentID) const;
70 };
71
72protected:
73 virtual bool registerCoordinates() = 0;
74 virtual void applyToComponentBounds() = 0;
75
76private:
78 friend class DependencyFinderScope;
79 Array<Component*> sourceComponents;
80 Array<MarkerList*> sourceMarkerLists;
81 bool registeredOk;
82
83 void registerComponentListener (Component&);
84 void registerMarkerListListener (MarkerList*);
85 void unregisterListeners();
86
88};
89
90} // namespace juce
Holds a resizable array of primitive or copy-by-value objects.
Definition juce_Array.h:56
Gets informed about changes to a component's hierarchy or position.
Base class for objects that can be used to automatically position a component according to some kind ...
The base class for all JUCE user-interface objects.
Used as a callback by the Scope::visitRelativeScope() method.
When evaluating an Expression object, this class is used to resolve symbols and perform functions tha...
A class for dynamically evaluating simple numeric expressions.
A class for receiving events when changes are made to a MarkerList.
Holds a set of named marker points along a one-dimensional axis.
Used for resolving a RelativeCoordinate expression in the context of a component.
Base class for Component::Positioners that are based upon relative coordinates.
Expresses a coordinate as a dynamically evaluated expression.
An X-Y position stored as a pair of RelativeCoordinate values.
The JUCE String class!
Definition juce_String.h:53
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.