📄 treectrl.h
字号:
wxTreeItemId InsertItem( const wxTreeItemId& rParent
,const wxTreeItemId& rIdPrevious
,const wxString& rsText
,int nImage = -1
,int nSelectedImage = -1
,wxTreeItemData* pData = NULL
);
//
// Insert a new item before the one with the given index
//
wxTreeItemId InsertItem( const wxTreeItemId& pParent
,size_t nIndex
,const wxString& rsText
,int nImage = -1
,int nSelectedImage = -1
,wxTreeItemData* pData = NULL
);
//
// Insert a new item in as the last child of the parent
//
wxTreeItemId AppendItem( const wxTreeItemId& rParent
,const wxString& rsText
,int nImage = -1
,int nSelectedImage = -1
,wxTreeItemData* pData = NULL
);
//
// Delete this item and associated data if any
//
void Delete(const wxTreeItemId& rItem);
//
// Delete all children (but don't delete the item itself)
//
void DeleteChildren(const wxTreeItemId& rItem);
//
// Delete all items from the tree
//
void DeleteAllItems(void);
//
// Expand this item
//
void Expand(const wxTreeItemId& rItem);
//
// Collapse the item without removing its children
//
void Collapse(const wxTreeItemId& rItem);
//
// Collapse the item and remove all children
//
void CollapseAndReset(const wxTreeItemId& rItem);
//
// Toggles the current state
//
void Toggle(const wxTreeItemId& rItem);
//
// Remove the selection from currently selected item (if any)
//
void Unselect(void);
//
// Unselect all items (only makes sense for multiple selection control)
//
void UnselectAll(void);
//
// Select this item
//
void SelectItem(const wxTreeItemId& rItem);
//
// Make sure this item is visible (expanding the parent item and/or
// scrolling to this item if necessary)
//
void EnsureVisible(const wxTreeItemId& rItem);
//
// Scroll to this item (but don't expand its parent)
//
void ScrollTo(const wxTreeItemId& rItem);
//
// OS/2 does not use a separate edit field for editting text. Here for
// interface compatibility, only.
//
wxTextCtrl* EditLabel( const wxTreeItemId& rItem
,wxClassInfo* pTextCtrlClass = CLASSINFO(wxTextCtrl)
);
//
// returns NULL for OS/2 in ALL cases
//
wxTextCtrl* GetEditControl(void) const {return (wxTextCtrl*)NULL;}
//
// End editing and accept or discard the changes to item label
//
void EndEditLabel( const wxTreeItemId& rItem
,bool bDiscardChanges = false
);
//
// Sorting
// -------
//
//
// This function is called to compare 2 items and should return -1, 0
// or +1 if the first item is less than, equal to or greater than the
// second one. The base class version performs alphabetic comparaison
// of item labels (GetText)
//
virtual int OnCompareItems( const wxTreeItemId& rItem1
,const wxTreeItemId& rItem2
);
//
// Sort the children of this item using OnCompareItems
//
void SortChildren(const wxTreeItemId& rItem);
//
// Helpers
// -------
//
//
// Determine to which item (if any) belongs the given point (the
// coordinates specified are relative to the client area of tree ctrl)
// and fill the flags parameter with a bitmask of wxTREE_HITTEST_xxx
// constants.
//
// The first function is more portable (because easier to implement
// on other platforms), but the second one returns some extra info.
//
wxTreeItemId HitTest(const wxPoint& rPoint)
{ int nDummy = 0; return HitTest(rPoint, nDummy); }
wxTreeItemId HitTest( const wxPoint& rPoint
,int& rFlags
);
//
// Get the bounding rectangle of the item (or of its label only)
//
bool GetBoundingRect( const wxTreeItemId& rItem
,wxRect& rRect
,bool bTextOnly = false
) const;
//
// Deprecated
// ----------
#if WXWIN_COMPATIBILITY_2_4
// These methods are deprecated and will be removed in future versions of
// wxWidgets, they're here for compatibility only, don't use them in new
// code (the comments indicate why these methods are now useless and how to
// replace them)
//
//
// Use Expand, Collapse, CollapseAndReset or Toggle
//
wxDEPRECATED( void ExpandItem( const wxTreeItemId& rItem
,int nAction
) );
//
// Use AddRoot, PrependItem or AppendItem
//
wxDEPRECATED( wxTreeItemId InsertItem( const wxTreeItemId& pParent
,const wxString& rsText
,int nImage = -1
,int nSelImage = -1
,long lInsertAfter = wxTREE_INSERT_LAST
) );
//
// Use Set/GetImageList and Set/GetStateImageList
//
wxDEPRECATED( wxImageList* GetImageList(int nVal) const );
wxDEPRECATED( void SetImageList(wxImageList* pImageList, int nVal) );
//
// Use Set/GetItemImage directly
//
wxDEPRECATED( int GetItemSelectedImage(const wxTreeItemId& rItem) const );
wxDEPRECATED( void SetItemSelectedImage(const wxTreeItemId& rItem, int nImage) );
//
// For this enumeration function you must pass in a "cookie" parameter
// which is opaque for the application but is necessary for the library
// to make these functions reentrant (i.e. allow more than one
// enumeration on one and the same object simultaneously). Of course,
// the "cookie" passed to GetFirstChild() and GetNextChild() should be
// the same!
//
//
// Get the first child of this item
//
wxDEPRECATED( wxTreeItemId GetFirstChild( const wxTreeItemId& rItem
,long& rCookie
) const );
//
// Get the next child
//
wxDEPRECATED( wxTreeItemId GetNextChild( const wxTreeItemId& rItem
,long& rCookie
) const );
#endif // WXWIN_COMPATIBILITY_2_4
//
// Implementation
// --------------
//
virtual MRESULT OS2WindowProc( WXUINT uMsg
,WXWPARAM wParam
,WXLPARAM lParam
);
virtual bool OS2Command( WXUINT uParam
,WXWORD wId
);
// virtual bool OMSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
//
// Override some base class virtuals
//
virtual bool SetBackgroundColour(const wxColour& rColour);
virtual bool SetForegroundColour(const wxColour& rColour);
//
// Get/set the check state for the item (only for wxTR_MULTIPLE)
//
bool IsItemChecked(const wxTreeItemId& rItem) const;
void SetItemCheck( const wxTreeItemId& rItem
,bool bCheck = true
);
protected:
//
// SetImageList helper
//
void SetAnyImageList( wxImageList* pImageList
,int nWhich
);
//
// Refresh a single item
//
void RefreshItem(const wxTreeItemId& rItem);
wxImageList* m_pImageListNormal; // images for tree elements
wxImageList* m_pImageListState; // special images for app defined states
bool m_bOwnsImageListNormal;
bool m_bOwnsImageListState;
private:
//
// The common part of all ctors
//
void Init(void);
//
// Helper functions
//
inline bool DoGetItem(wxTreeViewItem* pTvItem) const;
inline void DoSetItem(wxTreeViewItem* pTvItem);
inline void DoExpand( const wxTreeItemId& rItem
,int nFlag
);
wxTreeItemId DoInsertItem( const wxTreeItemId& pParent
,wxTreeItemId hInsertAfter
,const wxString& rsText
,int nImage
,int nSelectedImage
,wxTreeItemData* pData
);
int DoGetItemImageFromData( const wxTreeItemId& rItem
,wxTreeItemIcon vWhich
) const;
void DoSetItemImageFromData( const wxTreeItemId& rItem
,int nImage
,wxTreeItemIcon vWhich
) const;
void DoSetItemImages( const wxTreeItemId& rItem
,int nImage
,int nImageSel
);
void DeleteTextCtrl() { };
//
// support for additional item images which we implement using
// wxTreeItemIndirectData technique - see the comments in msw/treectrl.cpp
//
void SetIndirectItemData( const wxTreeItemId& rItem
,class wxTreeItemIndirectData* pData
);
bool HasIndirectData(const wxTreeItemId& rItem) const;
bool IsDataIndirect(wxTreeItemData* pData) const
{ return pData && pData->GetId().m_pItem == 0; }
//
// The hash storing the items attributes (indexed by items ids)
//
wxMapTreeAttr m_vAttrs;
//
// true if the hash above is not empty
//
bool m_bHasAnyAttr;
//
// Used for dragging
//
wxDragImage* m_pDragImage;
// Virtual root item, if wxTR_HIDE_ROOT is set.
// void* m_pVirtualRoot;
// the starting item for selection with Shift
// WXHTREEITEM m_htSelStart;
//
friend class wxTreeItemIndirectData;
friend class wxTreeSortHelper;
DECLARE_DYNAMIC_CLASS(wxTreeCtrl)
DECLARE_NO_COPY_CLASS(wxTreeCtrl)
}; // end of CLASS wxTreeCtrl
#endif // wxUSE_TREECTRL
#endif
// _WX_TREECTRL_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -