You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
7.0 KiB
C++
274 lines
7.0 KiB
C++
// XTPCoreTreeItem.h: interface for the CXTPCoreTreeItem class.
|
|
//
|
|
// This file is a part of the XTREME CONTROLS MFC class library.
|
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
|
//
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
|
//
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
|
// SINGLE COMPUTER.
|
|
//
|
|
// CONTACT INFORMATION:
|
|
// support@codejock.com
|
|
// http://www.codejock.com
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
//{{AFX_CODEJOCK_PRIVATE
|
|
#if !defined(__XTPCORETREEITEM_H__)
|
|
#define __XTPCORETREEITEM_H__
|
|
//}}AFX_CODEJOCK_PRIVATE
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
class CXTPCoreTreeItems;
|
|
class CXTPCoreTreeControl;
|
|
class CXTPImageManagerIcon;
|
|
class CXTPPropExchange;
|
|
class CXTPMarkupUIElement;
|
|
|
|
class _XTP_EXT_CLASS CXTPCoreTreeItem : public CObject
|
|
{
|
|
DECLARE_SERIAL(CXTPCoreTreeItem);
|
|
public:
|
|
CXTPCoreTreeItem();
|
|
|
|
protected:
|
|
virtual ~CXTPCoreTreeItem();
|
|
|
|
public:
|
|
void SetCaption(LPCTSTR lpszCaption);
|
|
void SetLabel(BOOL bLabel = TRUE);
|
|
|
|
CString GetCaption() const;
|
|
BOOL IsLabel() const;
|
|
|
|
CRect GetRect() const;
|
|
CRect GetScreenRect() const;
|
|
|
|
void SetExpanded(BOOL bExpanded = TRUE);
|
|
BOOL IsExpanded() const;
|
|
|
|
BOOL IsSelected() const;
|
|
|
|
void ShowCheckbox(BOOL bHasCheckbox = TRUE);
|
|
BOOL IsCheckboxVisible() const;
|
|
|
|
void SetChecked(int nChecked);
|
|
int IsChecked() const;
|
|
|
|
void SetIconId(int nIconId);
|
|
int GetIconId() const;
|
|
|
|
void SetEnabled(BOOL bEnabled);
|
|
BOOL IsEnabled() const;
|
|
|
|
CXTPImageManagerIcon* GetImage() const;
|
|
|
|
|
|
CRect GetButtonRect() const;
|
|
CRect GetCheckboxRect() const;
|
|
CRect GetCaptionRect() const;
|
|
|
|
void Remove();
|
|
|
|
virtual void DoPropExchange(CXTPPropExchange* pPX);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This method retrieves the application-supplied 32-bit value
|
|
// associated with the item
|
|
// Returns:
|
|
// The 32-bit value associated with the item
|
|
//-----------------------------------------------------------------------
|
|
DWORD_PTR GetItemData() const;
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary:
|
|
// This method sets the 32-bit value associated with the item.
|
|
// Parameters:
|
|
// dwData - Contains the new value to associate with the item.
|
|
//-----------------------------------------------------------------------
|
|
void SetItemData(DWORD_PTR dwData);
|
|
|
|
//-----------------------------------------------------------------------
|
|
// Summary: Returns Markup element that renders Caption of item
|
|
// Returns: Pointer to CXTPMarkupUIElement element
|
|
//-----------------------------------------------------------------------
|
|
CXTPMarkupUIElement* GetMarkupUIElement() const;
|
|
|
|
public:
|
|
DWORD AddRef();
|
|
DWORD Release();
|
|
|
|
public:
|
|
void Invalidate();
|
|
|
|
public:
|
|
BOOL HasChildren() const;
|
|
CXTPCoreTreeItems* GetChildren() const;
|
|
CXTPCoreTreeItems* GetParentItems() const;
|
|
|
|
public:
|
|
CXTPCoreTreeItem* GetNextSiblingItem() const;
|
|
CXTPCoreTreeItem* GetPrevSiblingItem() const;
|
|
|
|
CXTPCoreTreeItem* GetParentItem() const;
|
|
CXTPCoreTreeItem* GetFirstChildItem() const;
|
|
|
|
BOOL IsParent(CXTPCoreTreeItem* pItem) const;
|
|
CXTPCoreTreeControl* GetTreeControl() const;
|
|
|
|
public:
|
|
virtual CSize CalcSize(CDC* pDC, int nWidth) const;
|
|
virtual void Draw(CDC* pDC);
|
|
|
|
public:
|
|
void SetRect(CRect rc);
|
|
|
|
public:
|
|
static CXTPCoreTreeItem* AFX_CDECL CreateFromOleData(COleDataObject* pDataObject);
|
|
static CXTPCoreTreeItem* AFX_CDECL CreateFromOleFile(CFile* pFile);
|
|
HGLOBAL CacheGlobalData();
|
|
BOOL PrepareDrag (COleDataSource& srcItem);
|
|
|
|
protected:
|
|
CString m_strCaption;
|
|
BOOL m_bLabel;
|
|
mutable CXTPCoreTreeItems* m_pChildren;
|
|
CXTPCoreTreeItem* m_pNextItem;
|
|
CXTPCoreTreeItem* m_pPrevItem;
|
|
CXTPCoreTreeItems* m_pParentItems;
|
|
CRect m_rcItem;
|
|
BOOL m_bExpanded;
|
|
CXTPCoreTreeControl* m_pControl;
|
|
BOOL m_bHasCheckBox;
|
|
int m_nChecked;
|
|
int m_nIconId;
|
|
BOOL m_bEnabled;
|
|
DWORD_PTR m_dwData;
|
|
long m_dwRef;
|
|
CXTPMarkupUIElement* m_pMarkupUIElement; // Markup element that renders caption
|
|
|
|
|
|
friend class CXTPCoreTreeItems;
|
|
};
|
|
|
|
|
|
|
|
class _XTP_EXT_CLASS CXTPCoreTreeItems
|
|
{
|
|
public:
|
|
CXTPCoreTreeItems();
|
|
|
|
protected:
|
|
virtual ~CXTPCoreTreeItems();
|
|
|
|
public:
|
|
CXTPCoreTreeItem* AddItem(LPCTSTR lpszCaption);
|
|
|
|
CXTPCoreTreeItem* AddItemAfter(CXTPCoreTreeItem* pItem, CXTPCoreTreeItem* pPrevItem = NULL);
|
|
CXTPCoreTreeItem* AddItemBefore(CXTPCoreTreeItem* pItem, CXTPCoreTreeItem* pNextItem = NULL);
|
|
|
|
void MoveItemAfter(CXTPCoreTreeItem* pItem, CXTPCoreTreeItem* pPrevItem = NULL);
|
|
void MoveItemBefore(CXTPCoreTreeItem* pItem, CXTPCoreTreeItem* pPrevItem = NULL);
|
|
|
|
public:
|
|
int GetCount() const;
|
|
|
|
public:
|
|
void RemoveAll();
|
|
void RemoveItem(CXTPCoreTreeItem* pItem);
|
|
|
|
public:
|
|
POSITION GetHeadPosition() const;
|
|
CXTPCoreTreeItem* GetNext(POSITION& rPosition) const;
|
|
|
|
public:
|
|
CXTPCoreTreeItem* GetFirstItem() const;
|
|
CXTPCoreTreeItem* GetLastItem() const;
|
|
|
|
CXTPCoreTreeItem* GetNextItem(const CXTPCoreTreeItem* pItem) const;
|
|
CXTPCoreTreeItem* GetPrevItem(const CXTPCoreTreeItem* pItem) const;
|
|
|
|
|
|
protected:
|
|
CXTPCoreTreeItem* m_pFirstItem;
|
|
CXTPCoreTreeItem* m_pLastItem;
|
|
CXTPCoreTreeItem* m_pOwnerItem;
|
|
CXTPCoreTreeControl* m_pControl;
|
|
int m_nCount;
|
|
|
|
friend class CXTPCoreTreeItem;
|
|
friend class CXTPCoreTreeControl;
|
|
};
|
|
|
|
|
|
|
|
AFX_INLINE CString CXTPCoreTreeItem::GetCaption() const {
|
|
return m_strCaption;
|
|
}
|
|
AFX_INLINE BOOL CXTPCoreTreeItem::IsLabel() const {
|
|
return m_bLabel;
|
|
}
|
|
AFX_INLINE void CXTPCoreTreeItem::SetLabel(BOOL bLabel) {
|
|
m_bLabel = bLabel;
|
|
Invalidate();
|
|
}
|
|
AFX_INLINE CXTPCoreTreeItems* CXTPCoreTreeItem::GetParentItems() const {
|
|
return m_pParentItems;
|
|
}
|
|
AFX_INLINE void CXTPCoreTreeItem::ShowCheckbox(BOOL bHasCheckbox) {
|
|
m_bHasCheckBox = bHasCheckbox;
|
|
}
|
|
AFX_INLINE BOOL CXTPCoreTreeItem::IsCheckboxVisible() const {
|
|
return m_bHasCheckBox;
|
|
}
|
|
AFX_INLINE void CXTPCoreTreeItem::SetChecked(int nChecked) {
|
|
m_nChecked = nChecked;
|
|
Invalidate();
|
|
}
|
|
AFX_INLINE int CXTPCoreTreeItem::IsChecked() const {
|
|
return m_nChecked;
|
|
}
|
|
AFX_INLINE void CXTPCoreTreeItem::SetIconId(int nIconId) {
|
|
m_nIconId = nIconId;
|
|
Invalidate();
|
|
}
|
|
AFX_INLINE int CXTPCoreTreeItem::GetIconId() const {
|
|
return m_nIconId;
|
|
}
|
|
AFX_INLINE BOOL CXTPCoreTreeItem::IsEnabled() const {
|
|
return m_bEnabled;
|
|
}
|
|
AFX_INLINE DWORD_PTR CXTPCoreTreeItem::GetItemData() const {
|
|
return m_dwData;
|
|
}
|
|
AFX_INLINE void CXTPCoreTreeItem::SetItemData(DWORD_PTR dwData) {
|
|
m_dwData = dwData;
|
|
}
|
|
AFX_INLINE CXTPMarkupUIElement* CXTPCoreTreeItem::GetMarkupUIElement() const {
|
|
return m_pMarkupUIElement;
|
|
}
|
|
AFX_INLINE CXTPCoreTreeControl* CXTPCoreTreeItem::GetTreeControl() const {
|
|
return m_pControl;
|
|
}
|
|
AFX_INLINE int CXTPCoreTreeItems::GetCount() const {
|
|
return m_nCount;
|
|
}
|
|
AFX_INLINE CXTPCoreTreeItem* CXTPCoreTreeItems::GetFirstItem() const {
|
|
return m_pFirstItem;
|
|
}
|
|
AFX_INLINE CXTPCoreTreeItem* CXTPCoreTreeItems::GetLastItem() const {
|
|
return m_pLastItem;
|
|
}
|
|
|
|
|
|
#endif // !defined(__XTPCORETREEITEM_H__)
|