Implements DirectoryTree control.

You can find more information in comments below. Overrided methods can be found in corresponding base classes and interfaces.

class CDirectoryTree :public virtual IDirectoryTree, public CControl
    static const float ItemHeightAuto; // All items have individual height returned by getRequiredSize() 
    static const float ItemHeightText; // All items have same height equal to line height of text "Wy" 

    enum STATE // Possible states 

    enum FOLDER_STATE // Folder states 

    using FDirectoryCallback = void(*)(void *param, const String &path); // Function prototype called when enumerating directories 
    void(*OnSelectDirectory)(IControl *sender, const String &path); // Event called when directory has been selected 
    void(*OnDeselectDirectory)(IControl *sender, const String &path); // Event called when directory has been unselected 
    void(*OnActivateDirectory)(IControl *sender, const String &path); // Event called when directory has been activated 
    void(*OnDeactivateDirectory)(IControl *sender, const String &path); // Event called when directory has been deactivated 

    // IControl methods 
    void Refresh(const bool refresh_children) override;

    RectF getClientRect() override;
    RectF getRenderRect() override;
    String getRootDirectory() override;
    String getDirectory() override;
    String getFilter() override;
    IFileList *getFileList() override;
    bool isShowArchieved() override;
    bool isShowCompressed() override;
    bool isShowEncrypted() override;
    bool isShowHidden() override;
    bool isShowNormal() override;
    bool isShowOffline() override;
    bool isShowReadOnly() override;
    bool isShowSystem() override;
    bool isShowTemporary() override;

    bool setDPI(const Point &value) override;
    bool setRootDirectory(const String &value) override;
    bool setFilter(const String &value) override;
    bool setFileList(IFileList *value) override;
    bool setShowArchieved(const bool value) override;
    bool setShowCompressed(const bool value) override;
    bool setShowEncrypted(const bool value) override;
    bool setShowHidden(const bool value) override;
    bool setShowNormal(const bool value) override;
    bool setShowOffline(const bool value) override;
    bool setShowReadOnly(const bool value) override;
    bool setShowSystem(const bool value) override;
    bool setShowTemporary(const bool value) override;

    bool Rescan() override;

    CDirectoryTree(IForm *parent);
    CDirectoryTree(IControl *parent);

    STATE getState(); // Return curren state 
    // Return layout properties 
    RectF getBorderWidth() const;
    RectF getBorderRadius() const;
    RectF getPadding() const;
    RectC getBorderColor(const STATE state) const;
    Color getBackgroundColor(const STATE state) const;
    Gradient *getBackgroundGradient(const STATE state);
    Color getShadowColor(const STATE state) const;
    PointF getShadowShift(const STATE state) const;
    int getShadowRadius(const STATE state) const;
    Color getCornerColor(const STATE state) const;
    float getItemHeight() const;
    PointF getFolderSize() const;
    Color getFolderLinesColor() const;
    RectF getFolderBorderWidth(const FOLDER_STATE state) const;
    RectF getFolderBorderRadius(const FOLDER_STATE state) const;
    RectC getFolderBorderColor(const FOLDER_STATE state) const;
    Color getFolderBackgroundColor(const FOLDER_STATE state) const;
    Gradient *getFolderBackgroundGradient(const FOLDER_STATE state);
    PointF getFolderSignSize(const FOLDER_STATE state) const;
    Color getFolderSignColor(const FOLDER_STATE state) const;
    bool isMultiselect() const; // Whether multiple items can be selected at the same time 
    SCROLL_VISIBILITY getHScrollVisibility() const;
    SCROLL_VISIBILITY getVScrollVisibility() const;
    float getScrollInterval() const;
    float getScrollDelta() const;

    // Set layout properties 
    bool setBorderWidth(const RectF &value);
    bool setBorderRadius(const RectF &value);
    bool setPadding(const RectF &value);
    bool setBorderColor(const STATE state, const RectC &value);
    bool setLeftBorderColor(const STATE state, const Color &value);
    bool setTopBorderColor(const STATE state, const Color &value);
    bool setRightBorderColor(const STATE state, const Color &value);
    bool setBottomBorderColor(const STATE state, const Color &value);
    bool setBackgroundColor(const STATE state, const Color &value);
    bool setShadowColor(const STATE state, const Color &value);
    bool setShadowShift(const STATE state, const PointF &value);
    bool setShadowRadius(const STATE state, const int value);
    bool setCornerColor(const STATE state, const Color &value);
    bool setItemHeight(const float value);
    bool setFolderSize(const PointF &value);
    bool setFolderLinesColor(const Color &value);
    bool setFolderBorderWidth(const FOLDER_STATE state, const RectF &value);
    bool setFolderBorderRadius(const FOLDER_STATE state, const RectF &value);
    bool setFolderBorderColor(const FOLDER_STATE state, const RectC &value);
    bool setFolderBackgroundColor(const FOLDER_STATE state, const Color &value);
    bool setFolderSignSize(const FOLDER_STATE state, const PointF &value);
    bool setFolderSignColor(const FOLDER_STATE state, const Color &value);
    bool setMultiselect(const bool value); // Set whether multiple items could be selected at the same time 
    bool setHScrollVisibility(const SCROLL_VISIBILITY value);
    bool setVScrollVisibility(const SCROLL_VISIBILITY value);
    bool setScrollInterval(const float value);
    bool setScrollDelta(const float value);
    bool setBorderColor(const RectC &value);
    bool setLeftBorderColor(const Color &value);
    bool setTopBorderColor(const Color &value);
    bool setRightBorderColor(const Color &value);
    bool setBottomBorderColor(const Color &value);
    bool setBackgroundColor(const Color &value);
    bool setShadowColor(const Color &value);
    bool setShadowShift(const PointF &value);
    bool setShadowRadius(const int value);
    bool setCornerColor(const Color &value);

    void LockUpdate(); // Lock update and repaint 
    void UnlockUpdate(); // Unlock update and repaint 
    void EnumSelectedDirectories(void *param, FDirectoryCallback callback); // Enumerate selected directories 
Namespace: nitisa::standard
Include: Standard/Controls/DirectoryTree/DirectoryTree.h