25 #ifndef JUCE_TREEVIEW_H_INCLUDED 26 #define JUCE_TREEVIEW_H_INCLUDED 84 void addSubItem (
TreeViewItem* newItem,
int insertPosition = -1);
94 template <
class ElementComparator>
97 addSubItem (newItem, findInsertIndexInSortedArray (comparator, subItems.begin(), newItem, 0, subItems.size()));
105 void removeSubItem (
int index,
bool deleteItem =
true);
122 template <
class ElementComparator>
125 subItems.sort (comparator);
147 void setOpen (
bool shouldBeOpen);
158 void setSelected (
bool shouldBeSelected,
159 bool deselectOtherItemsFirst,
174 void treeHasChanged()
const noexcept;
181 void repaintItem()
const;
187 int getRowNumberInTree()
const noexcept;
192 bool areAllParentsOpen()
const noexcept;
197 void setLinesDrawnForSubItems (
bool shouldDrawLines)
noexcept;
206 virtual bool mightContainSubItems() = 0;
218 virtual String getUniqueName()
const;
240 virtual void itemOpennessChanged (
bool isNowOpen);
323 Colour backgroundColour,
bool isMouseOver);
342 virtual void itemClicked (
const MouseEvent& e);
358 virtual void itemDoubleClicked (
const MouseEvent& e);
365 virtual void itemSelectionChanged (
bool isNowSelected);
370 virtual String getTooltip();
388 virtual var getDragSourceDescription();
402 virtual bool isInterestedInFileDrag (
const StringArray& files);
412 virtual void filesDropped (
const StringArray& files,
int insertIndex);
447 void setDrawsInLeftMargin (
bool canDrawInLeftMargin)
noexcept;
460 void setDrawsInRightMargin (
bool canDrawInRightMargin)
noexcept;
495 void restoreOpennessState (
const XmlElement& xml);
499 int getIndexInParent()
const noexcept;
502 bool isLastOfSiblings()
const noexcept;
511 String getItemIdentifierString()
const;
553 int y, itemHeight, totalHeight, itemWidth, totalWidth;
556 bool redrawNeeded : 1;
557 bool drawLinesInside : 1;
558 bool drawLinesSet : 1;
559 bool drawsInLeftMargin : 1;
560 bool drawsInRightMargin : 1;
561 unsigned int openness : 2;
565 void updatePositions (
int newY);
566 int getIndentX()
const noexcept;
567 void setOwnerView (
TreeView*) noexcept;
568 void paintRecursively (
Graphics&,
int width);
572 int getNumRows()
const noexcept;
574 void deselectAllRecursively (
TreeViewItem* itemToIgnore);
575 int countSelectedItemsRecursively (
int depth)
const noexcept;
576 TreeViewItem* getSelectedItemWithIndex (
int index) noexcept;
579 void restoreToDefaultOpenness();
580 bool isFullyOpen()
const noexcept;
582 bool removeSubItemFromList (
int index,
bool deleteItem);
583 void removeAllSubItemsFromList();
584 bool areLinesDrawn() const;
586 #if JUCE_CATCH_DEPRECATED_CODE_MISUSE 646 void deleteRootItem();
654 void setRootItemVisible (
bool shouldBeVisible);
669 void setDefaultOpenness (
bool isOpenByDefault);
687 void setMultiSelectEnabled (
bool canMultiSelect);
699 void setOpenCloseButtonsVisible (
bool shouldBeVisible);
709 void clearSelectedItems();
716 int getNumSelectedItems (
int maximumDepthToSearchTo = -1)
const noexcept;
724 void moveSelectedRow (
int deltaRows);
731 int getNumRowsInTree()
const;
758 void setIndentSize (
int newIndentSize);
785 XmlElement* getOpennessState (
bool alsoIncludeScrollPosition)
const;
798 void restoreOpennessState (
const XmlElement& newState,
799 bool restoreStoredSelection);
811 backgroundColourId = 0x1000500,
812 linesColourId = 0x1000501,
813 dragAndDropIndicatorColourId = 0x1000502,
814 selectedItemBackgroundColourId = 0x1000503
826 Colour backgroundColour,
bool isItemOpen,
bool isMouseOver) = 0;
828 virtual bool areLinesDrawnForTreeView (
TreeView&) = 0;
829 virtual int getTreeViewIndentSize (
TreeView&) = 0;
836 void resized()
override;
838 bool keyPressed (
const KeyPress&)
override;
840 void colourChanged()
override;
842 void enablementChanged()
override;
844 bool isInterestedInFileDrag (
const StringArray& files)
override;
846 void fileDragEnter (
const StringArray& files,
int x,
int y)
override;
848 void fileDragMove (
const StringArray& files,
int x,
int y)
override;
850 void fileDragExit (
const StringArray& files)
override;
852 void filesDropped (
const StringArray& files,
int x,
int y)
override;
854 bool isInterestedInDragSource (
const SourceDetails&)
override;
881 bool defaultOpenness, needsRecalculating, rootItemVisible;
882 bool multiSelectEnabled, openCloseButtonsVisible;
884 void itemsChanged() noexcept;
885 void recalculateIfNeeded();
888 void showDragHighlight (
const InsertPoint&) noexcept;
889 void hideDragHighlight() noexcept;
891 void handleDrop (
const StringArray&,
const SourceDetails&);
892 bool toggleOpenSelectedItem();
893 void moveOutOfSelectedItem();
894 void moveIntoSelectedItem();
895 void moveByPages (
int numPages);
897 #if JUCE_CATCH_DEPRECATED_CODE_MISUSE 899 virtual int paintOpenCloseButton (
Graphics&,
int,
int,
bool) {
return 0; }
905 #endif // JUCE_TREEVIEW_H_INCLUDED Definition: juce_Variant.h:46
bool isRootItemVisible() const noexcept
Definition: juce_TreeView.h:660
Definition: juce_DragAndDropTarget.h:53
TreeViewItem * findItemFromIdentifierString(const String &identifierString) const
Definition: juce_TreeView.cpp:599
Definition: juce_KeyPress.h:37
Definition: juce_TreeView.cpp:25
static const String empty
Definition: juce_String.h:152
Definition: juce_TreeView.cpp:984
TreeView * getOwnerView() const noexcept
Definition: juce_TreeView.h:130
bool areItemsOpenByDefault() const noexcept
Definition: juce_TreeView.h:675
Definition: juce_Line.h:44
virtual ~LookAndFeelMethods()
Definition: juce_TreeView.h:823
#define noexcept
Definition: juce_CompilerSupport.h:141
ColourIds
Definition: juce_TreeView.h:809
Definition: juce_FileDragAndDropTarget.h:33
TreeViewItem * getParentItem() const noexcept
Definition: juce_TreeView.h:133
TreeViewItem * getItemOnRow(int index) const
Definition: juce_TreeView.cpp:581
Definition: juce_TreeView.cpp:875
virtual bool canBeSelected() const
Definition: juce_TreeView.h:268
Definition: juce_TreeView.cpp:392
virtual int getItemWidth() const
Definition: juce_TreeView.h:255
Definition: juce_String.h:43
bool areOpenCloseButtonsVisible() const noexcept
Definition: juce_TreeView.h:705
Definition: juce_TreeView.h:821
#define JUCE_API
Definition: juce_StandardHeader.h:139
virtual int getItemHeight() const
Definition: juce_TreeView.h:263
TreeViewItem * getRootItem() const noexcept
Definition: juce_TreeView.h:641
Definition: juce_CriticalSection.h:47
bool isInterestedInDragSource(const SourceDetails &) override
Definition: juce_TreeView.cpp:1107
Definition: juce_Rectangle.h:36
void sortSubItems(ElementComparator &comparator)
Definition: juce_TreeView.h:123
NotificationType
Definition: juce_NotificationType.h:33
Definition: juce_XmlElement.h:142
Definition: juce_Colour.h:35
Definition: juce_TreeView.h:535
Definition: juce_TreeView.cpp:944
Definition: juce_TreeView.h:603
Definition: juce_Component.h:33
bool isMultiSelectEnabled() const noexcept
Definition: juce_TreeView.h:693
void addSubItemSorted(ElementComparator &comparator, TreeViewItem *newItem)
Definition: juce_TreeView.h:95
png_const_structrp png_const_inforp int png_fixed_point * width
Definition: juce_PNGLoader.cpp:2339
Definition: juce_StringArray.h:39
Definition: juce_ContainerDeletePolicy.h:44
virtual Component * createItemComponent()
Definition: juce_TreeView.h:294
Definition: juce_TreeView.h:45
Definition: juce_GraphicsContext.h:42
Definition: juce_Viewport.h:42
Definition: juce_NotificationType.h:36
void itemDropped(const SourceDetails &) override
Definition: juce_TreeView.cpp:1127
Definition: juce_MouseEvent.h:36
Definition: juce_DragAndDropTarget.h:43