103 :
public TPanelProxy<ITreeCtrl>
104 ,
protected CSTree<LPTVITEM> {
105 DEF_SOBJECT(
SPanel, L
"treectrl")
152 (THIS_ LPCTSTR lpszItem,
int nImage,
int nSelectedImage, LPARAM lParam, HSTREEITEM hParent =
STVI_ROOT, HSTREEITEM hInsertAfter =
STVI_LAST) OVERRIDE;
165 (THIS_ LPCSTR lpszItem,
int nImage,
int nSelectedImage, LPARAM lParam, HSTREEITEM hParent =
STVI_ROOT, HSTREEITEM hInsertAfter =
STVI_LAST) OVERRIDE
167 SStringT str = S_CA2T(lpszItem, CP_UTF8);
168 return InsertItem(str, nImage, nSelectedImage, lParam, hParent, hInsertAfter);
176 STDMETHOD_(BOOL, RemoveItem)(THIS_ HSTREEITEM hItem) OVERRIDE;
181 STDMETHOD_(
void, RemoveAllItems)(THIS) OVERRIDE;
187 STDMETHOD_(HSTREEITEM, GetRootItem)(THIS) SCONST OVERRIDE;
194 STDMETHOD_(HSTREEITEM, GetNextSiblingItem)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
201 STDMETHOD_(HSTREEITEM, GetPrevSiblingItem)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
209 STDMETHOD_(HSTREEITEM, GetChildItem)
210 (THIS_ HSTREEITEM hItem, BOOL bFirst = TRUE) SCONST OVERRIDE;
217 STDMETHOD_(HSTREEITEM, GetParentItem)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
223 STDMETHOD_(HSTREEITEM, GetSelectedItem)(THIS) SCONST OVERRIDE;
230 STDMETHOD_(HSTREEITEM, GetNextItem)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
238 STDMETHOD_(
void, SortChildren)
239 (THIS_ HSTREEITEM hItem, FunTreeSortCallback sortFunc,
void *pCtx) OVERRIDE;
247 STDMETHOD_(BOOL, SelectItem)(THIS_ HSTREEITEM hItem, BOOL bEnsureVisible = TRUE) OVERRIDE;
255 STDMETHOD_(BOOL,
GetItemText)(THIS_ HSTREEITEM hItem, IStringT *strText) SCONST OVERRIDE;
263 STDMETHOD_(BOOL,
GetItemTextA)(THIS_ HSTREEITEM hItem, IStringA *strText) SCONST OVERRIDE
267 SStringA strBufA = S_CT2A(strBuf, CP_UTF8);
268 strText->Copy(&strBufA);
278 STDMETHOD_(BOOL, SetItemText)(THIS_ HSTREEITEM hItem, LPCTSTR lpszItem) OVERRIDE;
286 STDMETHOD_(BOOL,
SetItemTextA)(THIS_ HSTREEITEM hItem, LPCSTR lpszItem) OVERRIDE
288 SStringT str = S_CA2T(lpszItem, CP_UTF8);
299 STDMETHOD_(BOOL, GetItemImage)
300 (THIS_ HSTREEITEM hItem,
int *nImage,
int *nSelectedImage) SCONST OVERRIDE;
309 STDMETHOD_(BOOL, SetItemImage)(THIS_ HSTREEITEM hItem,
int nImage,
int nSelectedImage) OVERRIDE;
316 STDMETHOD_(LPARAM, GetItemData)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
324 STDMETHOD_(BOOL, SetItemData)(THIS_ HSTREEITEM hItem, LPARAM lParam) OVERRIDE;
331 STDMETHOD_(BOOL, ItemHasChildren)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
338 STDMETHOD_(
int, GetCheckState)(THIS_ HSTREEITEM hItem) SCONST OVERRIDE;
346 STDMETHOD_(BOOL, SetCheckState)(THIS_ HSTREEITEM hItem, BOOL bCheck) OVERRIDE;
354 STDMETHOD_(BOOL, Expand)(THIS_ HSTREEITEM hItem, UINT nCode = TVE_EXPAND) OVERRIDE;
361 STDMETHOD_(BOOL, EnsureVisible)(THIS_ HSTREEITEM hItem) OVERRIDE;
368 void SetListener(IListener *pListener);
388 HSTREEITEM
InsertItem(LPCTSTR lpszItem,
int nImage,
int nSelectedImage, HSTREEITEM hParent =
STVI_ROOT, HSTREEITEM hInsertAfter =
STVI_LAST);
395 HSTREEITEM HitTest(CPoint &pt);
422 void UpdateScrollBar();
436 virtual void LoadBranch(HSTREEITEM hParent,
SXmlNode xmlNode);
443 virtual void LoadItemAttribute(
SXmlNode xmlNode, LPTVITEM pItem);
452 HSTREEITEM
InsertItem(LPTVITEM pItemObj, HSTREEITEM hParent, HSTREEITEM hInsertAfter);
469 BOOL IsAncestor(HSTREEITEM hItem1, HSTREEITEM hItem2);
476 BOOL VerifyItem(HSTREEITEM hItem)
const;
483 void SetChildrenVisible(HSTREEITEM hItem, BOOL bVisible);
490 void SetChildrenState(HSTREEITEM hItem,
int nCheckValue);
498 BOOL CheckChildrenState(HSTREEITEM hItem, BOOL bCheck);
504 void CheckState(HSTREEITEM hItem);
509 virtual void ItemLayout();
515 virtual void CalcItemContentWidth(LPTVITEM pItem);
522 virtual int CalcItemWidth(
const LPTVITEM pItem);
529 virtual int CalcMaxItemWidth(HSTREEITEM hItem);
534 virtual void UpdateContentWidth();
541 int GetItemShowIndex(HSTREEITEM hItemObj);
549 BOOL GetItemRect(LPTVITEM pItem, CRect &rcItem);
555 void RedrawItem(HSTREEITEM hItem);
563 virtual void DrawItem(
IRenderTarget *pRT,
const CRect &rc, HSTREEITEM hItem);
571 virtual void DrawLines(
IRenderTarget *pRT,
const CRect &rc, HSTREEITEM hItem);
579 int ItemHitTest(HSTREEITEM hItem, CPoint &pt)
const;
587 void ModifyToggleState(HSTREEITEM hItem, DWORD dwStateAdd, DWORD dwStateRemove);
595 void ModifyChekcBoxState(HSTREEITEM hItem, DWORD dwStateAdd, DWORD dwStateRemove);
603 void ItemLButtonDown(HSTREEITEM hItem, UINT nFlags, CPoint pt);
611 void ItemLButtonUp(HSTREEITEM hItem, UINT nFlags, CPoint pt);
619 void ItemLButtonDbClick(HSTREEITEM hItem, UINT nFlags, CPoint pt);
627 void ItemMouseMove(HSTREEITEM hItem, UINT nFlags, CPoint pt);
633 void ItemMouseLeave(HSTREEITEM hItem);
646 virtual void OnInsertItem(LPTVITEM &pItemData);
806 ATTR_COLOR(L
"colorItemBkgnd",
m_crItemBg, FALSE)
870 void OnSize(UINT nType, CSize size);