11namespace tracktion {
inline namespace engine
30 template<
typename SelectableType>
73 bool partOfCutOperation;
87 virtual bool canCutSelected (
const SelectableList& selectedObjects);
90 enum class Relationship
92 moveUp, moveDown, moveLeft, moveRight,
93 moveToHome, moveToEnd,
101 Relationship relationship;
102 bool keepExistingItemsSelected =
false;
114 static bool areAllObjectsOfUniformType (
const SelectableList& selectedObjects);
124 template <
typename ClassType,
typename ObjectType>
127 SelectableClass* getClassForObject (
const Selectable* s)
override {
return dynamic_cast<const ObjectType*
> (s) !=
nullptr ? &cls :
nullptr; }
131 #define DECLARE_SELECTABLE_OBJECT_AND_CLASS(ObjectType, ClassType) \
132 static SelectableClass::ClassInstance<ClassType, ObjectType> JUCE_JOIN_MACRO (selectableClass ## ClassType, __LINE__);
134 #define DECLARE_SELECTABLE_CLASS(ObjectType) \
135 DECLARE_SELECTABLE_OBJECT_AND_CLASS (ObjectType, ObjectType ## SelectableClass)
The Tracktion Edit class!
Represents a type of object that can be selected.
virtual bool pasteClipboard(const SelectableList ¤tlySelectedItems, int editViewID)
This gives the selected items a first chance to paste the clipboard contents when the user presses ct...
virtual bool canObjectsBeSelectedAtTheSameTime(Selectable &object1, Selectable &object2)
This is only called if canClassesBeSelectedAtTheSameTime() has already returned true for the other ob...
virtual void addClipboardEntriesFor(AddClipboardEntryParams &)
A class should use this to create XML clipboard entries for the given set of items.
virtual void keepSelectedObjectOnScreen(const SelectableList ¤tlySelectedObjects)
if implemented, this should do whatever is appropriate to make these objects visible - e....
virtual void selectOtherObjects(const SelectOtherObjectsParams &)
Must try to find and select objects that are related to these ones in the specified way.
virtual bool canBeSelected(const Selectable &object)
If it's possible for an object to be selected.
virtual bool canClassesBeSelectedAtTheSameTime(SelectableClass *otherClass)
if it's possible for an object of this class to be selected at the same time as an object of the clas...
virtual juce::String getDescriptionOfSelectedGroup(const SelectableList &)
Must return a description of this particular group of objects.
virtual void deleteSelected(const DeleteSelectedParams ¶ms)
Deletes this set of objects.
Base class for things that can be selected, and whose properties can appear in the properties panel.
Manages a list of items that are currently selected.
A list of Selectables, similar to a juce::Array but contains a cached list of the SelectableClasses f...