reman3/Rayman_X/cpa/public/ITF/CPAdTree.hpp

138 lines
4.6 KiB
C++

/*=========================================================================
*
* CPAdTree.hpp : class CPA_HierarchyTree
*
*
* Version 1.0
* Creation date
* Revision date
*
* Shaitan
*=======================================================================*/
#ifdef ACTIVE_EDITOR
#ifndef __CPA_HIERARCHYTREE_H__
#define __CPA_HIERARCHYTREE_H__
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
class CPA_EditorBase;
class CPA_BaseObject;
class CPA_DialogList;
/*#################################################################################*/
/* Tree Control */
/*#################################################################################*/
/*===========================================================================
* Description: Class for the Tree Item
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_TreeItem
{
protected:
CPA_BaseObject *m_pObject;
void *m_pInfo;
int m_iIcon;
int m_iState;
public:
CPA_TreeItem (CPA_BaseObject *pObject);
~CPA_TreeItem (void);
CPA_BaseObject * GetObject (void) { return m_pObject; }
void * GetInfo (void) { return m_pInfo; }
void SetInfo (void *pInfo) { m_pInfo = pInfo; }
int GetIcon (void) { return m_iIcon; }
void SetIcon (int iIcon) { m_iIcon = iIcon; }
int GetState (void) { return m_iState; }
void SetState (int iState) { m_iState = iState; }
};
/*===========================================================================
* Description: Class for Hierarchy Tree
* Creation date:
* Author: Shaitan
*---------------------------------------------------------------------------
* Revision date: Author:
*=========================================================================*/
class CPA_EXPORT CPA_HierarchyTree : public CTreeCtrl
{
protected:
CPA_EditorBase *m_pOwnerEditor;
CPA_DialogList *m_pParentDialog;
CPA_BaseObject *m_pRoot;
CImageList *m_pIconList;
CImageList *m_pStateList;
CImageList m_stDefaultImageList;
HTREEITEM m_hDraggedItem;
HTREEITEM m_hTarget;
public:
CPA_HierarchyTree ();
~CPA_HierarchyTree ();
HTREEITEM GetDraggedItem (void) { return m_hDraggedItem; }
HTREEITEM GetDropTarget (void) { return m_hTarget; }
void SetParentDialog (CPA_DialogList *pParentDialog) { m_pParentDialog = pParentDialog; }
void SetOwnerEditor (CPA_EditorBase *pEditor) { m_pOwnerEditor = pEditor; }
void SetDraggedItem (HTREEITEM hItem) { m_hDraggedItem = hItem; }
void SetIconList (CImageList *pIconList, BOOL bUpdate = TRUE);
void SetStateList (CImageList *pIconList, BOOL bUpdate = TRUE);
void SetTreeRoot (CPA_BaseObject *pRoot);
void fn_vDeleteHierarchyTree (HTREEITEM hTreeNode = NULL);
void fn_vFillHierarchyTree (CPA_BaseObject *pEdParent, HTREEITEM hTreeNode);
HTREEITEM GetCorrespondingItem (CPA_BaseObject *pObject, CPA_BaseObject *pParent, HTREEITEM hElem);
CPA_BaseObject * GetCorrespondingChild (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void * GetCorrespondingInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
int GetCorrespondingIcon (CPA_BaseObject *pObject);
int GetCorrespondingState (CPA_BaseObject *pObject);
void * GetItemInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemInfo (CPA_BaseObject *pObject, CPA_BaseObject *pParent, void *pInfo);
int GetItemIcon (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemIcon (CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iIcon);
int GetItemStateI (CPA_BaseObject *pObject, CPA_BaseObject *pParent);
void SetItemStateI (CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iState);
afx_msg void OnRButtonDown (UINT nFlags, CPoint point);
afx_msg void OnLButtonUp (UINT nFlags, CPoint point);
afx_msg void OnLButtonDblClk (UINT nFlags, CPoint point);
afx_msg void OnMouseMove (UINT nFlags, CPoint point);
afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);
BOOL OnCommand( WPARAM wParam, LPARAM lParam );
DECLARE_MESSAGE_MAP()
};
#endif /*__CPA_HIERARCHYTREE_H__*/
#endif /* ACTIVE_EDITOR*/