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
{
public:
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
{
stNormal,
stHovered,
stFocused,
stFocusedHovered,
stDisabled
};
enum FOLDER_STATE // Folder states
{
fsNormal,
fsHovered
};
using FDirectoryCallback = void(*)(void *param, const String &path); // Function prototype called when enumerating directories
public:
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();
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 |