Inherited Members
public:
// typedefs
typedef CStringRef MemberID;
// structs
struct NodeFlags;
// fields
BrowserNode* parent = nullptr);
BrowserNode* parent = nullptr);
BrowserNode* parent = nullptr);
// methods
virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
virtual unsigned int CCL_API retain () = 0;
virtual unsigned int CCL_API release () = 0;
Unknown& operator = (const Unknown&);
unsigned int getRetainCount () const;
virtual Object*CCL_API revealObject (const void* moduleAddress) = 0;
virtual void CCL_API addObserver (IObserver* observer) = 0;
virtual void CCL_API removeObserver (IObserver* observer) = 0;
virtual void CCL_API signal (MessageRef msg) = 0;
virtual void CCL_API deferSignal (IMessage* msg) = 0;
static ISubject void addObserver (IUnknown* unknown, IObserver* observer);
static void removeObserver (IUnknown* unknown, IObserver* observer);
virtual void CCL_API notify (ISubject* subject, MessageRef msg) = 0;
static IObserver void notify (
IUnknown* unknown,
ISubject* subject,
MessageRef msg
);
virtual const ITypeInfo&CCL_API getTypeInfo () const = 0;
virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const = 0;
virtual tbool CCL_API setProperty (MemberID propertyId, const Variant& var) = 0;
virtual tbool CCL_API getPropertyNames (IPropertyCollector& collector) const = 0;
virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg) = 0;
DECLARE_BASE_CLASS (Object);
virtual void CCL_API removeObserver (IObserver* observer);
virtual void CCL_API signal (MessageRef msg);
virtual void CCL_API deferSignal (IMessage* msg);
virtual void deferChanged ();
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
virtual bool equals (const Object& obj) const;
virtual int compare (const Object& obj) const;
virtual bool load (const Storage& storage);
virtual bool save (const Storage& storage) const;
virtual bool save (const OutputStorage& storage) const;
virtual bool toString (String& string, int flags = 0) const;
virtual int getHashCode (int size) const;
IUnknown* asUnknown ();
static void addGarbageCollected (Object* obj, bool globalScope = true);
static void deferDestruction (Object* obj);
static const void* getModuleAddress ();
DECLARE_CLASS (ListViewItem, Object);
PROPERTY_STRING (title, Title);
virtual IImage* getIcon ();
PROPERTY_SHARED_AUTO (IImage, thumbnail, Thumbnail);
Enabled PROPERTY_BOOL (checked, Checked);
virtual bool getDetail (Variant& value, StringID id) const;
virtual bool drawDetail (
const IItemModel::DrawInfo& info,
StringID id,
AlignmentRef alignment
);
virtual StringID getCustomBackground () const;
virtual bool measureContent (
Rect& size,
StringID id,
const IItemModel::StyleInfo& info
);
virtual bool getTooltip (String& tooltip, StringID id);
virtual IUnknown* createDragObject ();
virtual bool toString (String& string, int flags = 0) const;
virtual int compare (const Object& obj) const;
DECLARE_CLASS (TreeViewNode, ListViewItem);
virtual bool isFolder () const;
virtual bool hasSubNodes () const;
virtual bool canAutoExpand () const;
virtual bool getSubNodes (
Container& children,
NodeFlags flags = NodeFlags::kAll
);
virtual CString CCL_API getNodeType () const = 0;
virtual tbool CCL_API isNodeType (StringID type) const = 0;
virtual StringRef CCL_API getNodeTitle () const = 0;
DECLARE_STRINGID_MEMBER (kTitleProperty);
virtual tbool CCL_API checkCommandCategory (CStringRef category) const = 0;
virtual tbool CCL_API interpretCommand (const CommandMsg& msg) = 0;
DECLARE_CLASS (BrowserNode, TreeViewNode);
virtual Browser* getBrowser () const;
PROPERTY_POINTER (BrowserNode, parent, Parent) const;
bool hasAncestor (BrowserNode* ancestor) const;
const BrowserNode* getAncestorNode (MetaClassRef classID) const;
template <class T>
T* getAncestorNode () const;
const BrowserNode* getAncestorNodeWithInterface (UIDRef iid) const;
template <class T>
T* getAncestorNodeWithInterface () const;
virtual bool getUniqueName (MutableCString& name);
virtual bool drawIconOverlay (const IItemModel::DrawInfo& info);
virtual bool onRefresh ();
virtual void onNodeRemoved (BrowserNode* node);
virtual bool onOpen (bool deferred = false);
virtual bool onEdit (StringID id, const IItemModel::EditInfo& info);
virtual bool performRemoval (NodeRemover& remover);
virtual bool interpretCommand (
const CommandMsg& msg,
const Container* selectedNodes
);
virtual tresult CCL_API appendContextMenu (
IContextMenu& contextMenu,
Container* selectedNodes
);
virtual ISearchProvider* getSearchProvider ();
virtual tbool CCL_API checkCommandCategory (CStringRef category) const;
virtual tbool CCL_API interpretCommand (const CommandMsg& msg);
virtual int compare (const Object& obj) const;
virtual CLASS_INTERFACE2 (IBrowserNode, ICommandHandler, TreeViewNode) protected CString CCL_API getNodeType () const;
virtual tbool CCL_API isNodeType (StringID type) const;
virtual StringRef CCL_API getNodeTitle () const;
virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const;
virtual tbool CCL_API setProperty (MemberID propertyId, const Variant& var);
virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg);
bool drawDetailString (
const IItemModel::DrawInfo& info,
StringRef string,
AlignmentRef alignment = Alignment ()
);
bool drawDetailString (
const IItemModel::DrawInfo& info,
StringRef string,
BrushRef textBrush,
AlignmentRef alignment = Alignment ()
);
bool drawDetailLines (
const IItemModel::DrawInfo& info,
String strings [],
int count,
BrushRef textBrush,
AlignmentRef alignment = Alignment ()
);
template <class Iface>
Iface* getAncestorNodeWithInterface () const;
DECLARE_CLASS (FolderNode, BrowserNode);
void add (BrowserNode* node);
void addSorted (BrowserNode* node);
void insertAt (int index, BrowserNode* node);
bool remove (BrowserNode* node);
void removeAll ();
FolderNode* getFolder (StringRef title);
int countNodes () const;
BrowserNode* getNodeAt (int index) const;
int getNodeIndex (BrowserNode* node);
IUnknown* findNode (const IRecognizer* recognizer) const;
template <class T>
T* findNode (const IRecognizer* recognizer) const;
const ObjectArray& getContent () const;
virtual bool isFolder () const;
virtual bool getSubNodes (
Container& children,
NodeFlags flags = NodeFlags::kAll
);
virtual void onNodeRemoved (BrowserNode* node);
DECLARE_CLASS_ABSTRACT (SortedNode, FolderNode);
PROPERTY_MUTABLE_CSTRING (folderBackground, FolderBackground);
void setSorter (NodeSorter* sorter);
NodeSorter* getSorter ();
FolderNode* addSorted (BrowserNode* node);
FolderNode* addSubFolders (StringRef path);
void addSubFolders (IUnknownIterator& pathIterator);
SortFolderNode* findSortFolderNode (StringRef path) const;
virtual void build () = 0;
virtual bool getSubNodes (
Container& children,
NodeFlags flags = NodeFlags::kAll
);
virtual bool onRefresh ();
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
static bool insertNode (
SortedNode* sortedNode,
BrowserNode* node,
Browser* browser
);
static void removeNode (
SortedNode* sortedNode,
BrowserNode* node,
Browser* browser
);
virtual tbool CCL_API canInsertData (
const IUnknownList& data,
IDragSession* session = nullptr,
IView* targetView = nullptr,
int insertIndex = -1
) = 0;
virtual tbool CCL_API insertData (
const IUnknownList& data,
IDragSession* session = nullptr,
int insertIndex = -1
) = 0;