274 lines
9.5 KiB
C++
274 lines
9.5 KiB
C++
/*=========================================================================
|
|
*
|
|
* CPAdList.h : class CPA_DialogList
|
|
*
|
|
*
|
|
* Version 1.0
|
|
* Creation date
|
|
* Revision date
|
|
*
|
|
* Shaitan
|
|
*=======================================================================*/
|
|
#ifdef ACTIVE_EDITOR
|
|
|
|
#ifndef __CPA_DIALOGLIST_H__
|
|
#define __CPA_DIALOGLIST_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
|
|
/****************************************/
|
|
|
|
/* mode : tree or list*/
|
|
typedef enum tdeListDrawMode_
|
|
{
|
|
E_ldm_Tree,
|
|
E_ldm_List
|
|
}
|
|
tdeListDrawMode;
|
|
|
|
/* update action*/
|
|
typedef enum tdeListReinitMode_
|
|
{
|
|
E_lrm_ReinitList,
|
|
E_lrm_ChangeSelection,
|
|
E_lrm_GoToChild,
|
|
E_lrm_GoToParent
|
|
}
|
|
tdeListReinitMode;
|
|
|
|
/* control position*/
|
|
typedef enum tdeListControlPos_
|
|
{
|
|
E_lcp_Center,
|
|
E_lcp_AdjustWidth,
|
|
E_lcp_AdjustAll
|
|
}
|
|
tdeListControlPos;
|
|
|
|
|
|
|
|
#include "CPARes.h"
|
|
#include "CPAListB.hpp"
|
|
#include "CPAdLbox.hpp"
|
|
#include "CPAdTree.hpp"
|
|
|
|
class CPA_EditorBase;
|
|
class CPA_SuperObject;
|
|
class CPA_DialogList;
|
|
|
|
/*#################################################################################*/
|
|
/* Lists for Dialog */
|
|
/*#################################################################################*/
|
|
|
|
/*===========================================================================
|
|
* Description: Class for the Lists of Dialog
|
|
* Creation date:
|
|
* Author: Shaitan
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*=========================================================================*/
|
|
class CPA_EXPORT CPA_ListForDialog : public CObject
|
|
{
|
|
protected:
|
|
CPA_BaseObject *m_pTreeRoot; /* Root for the Tree*/
|
|
CPA_BaseObjectList *m_pSortedList; /* List for the ListBox */
|
|
CImageList *m_pIconList; /* List of icons*/
|
|
CImageList *m_pStateList; /* List of state icons*/
|
|
CString m_csName; /* Name in the ComboBox*/
|
|
tdeListDrawMode m_eDrawMode; /* C_List or C_Tree*/
|
|
tdeListOrder m_eListOrder; /* Default order */
|
|
long m_lDrawStyle; /* current style;*/
|
|
BOOL m_bCanChangeOrder; /* Flag for popup*/
|
|
BOOL m_bCanChangeStyle; /* Flag for popup*/
|
|
|
|
|
|
public:
|
|
|
|
/* constructors*/
|
|
CPA_ListForDialog (CString csName, CPA_BaseObjectList *pListObjects,
|
|
CImageList *pIconList, CImageList *pStateList = NULL,
|
|
tdeListOrder eDefaultOrder = E_lo_Alpha, BOOL bCanChangeOrder = TRUE,
|
|
long lDefaultStyle = C_lDrawName, BOOL bCanChangeStyle = TRUE);
|
|
|
|
CPA_ListForDialog (CString csName, CPA_BaseObject *pTreeRoot,
|
|
CImageList *pIconList, CImageList *pStateList = NULL);
|
|
|
|
~CPA_ListForDialog (void);
|
|
|
|
/* accessing members*/
|
|
CPA_BaseObjectList * GetSortedList (void) { return m_pSortedList; }
|
|
CPA_BaseObject * GetRoot (void) { return m_pTreeRoot; }
|
|
CImageList * GetIconList (void) { return m_pIconList; }
|
|
CImageList * GetStateList (void) { return m_pStateList; }
|
|
tdeListDrawMode GetMode (void) { return m_eDrawMode; }
|
|
tdeListOrder GetOrder (void) { return m_eListOrder; }
|
|
CString GetName (void) { return m_csName; }
|
|
long GetStyle (void) { return m_lDrawStyle; }
|
|
BOOL fn_bCanChangeOrder (void) { return m_bCanChangeOrder; }
|
|
BOOL fn_bCanChangeStyle (void) { return m_bCanChangeStyle; }
|
|
/* setting members*/
|
|
void SetTreeRoot (CPA_BaseObject *pNewRoot) { m_pTreeRoot = pNewRoot; }
|
|
void SetListObjects (CPA_BaseObjectList *pNewList) { m_pSortedList = pNewList; }
|
|
void SetIconList (CImageList *pNewIcons) { m_pIconList = pNewIcons; }
|
|
void SetStateList (CImageList *pNewStates) { m_pStateList = pNewStates; }
|
|
void SetOrder (tdeListOrder eOrder);
|
|
void SetStyle (long lStyle);
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/*#################################################################################*/
|
|
/* Dialog */
|
|
/*#################################################################################*/
|
|
|
|
/*===========================================================================
|
|
* Description: Class for the Dialog
|
|
* Creation date:
|
|
* Author: Shaitan
|
|
*
|
|
*---------------------------------------------------------------------------
|
|
*
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*=========================================================================*/
|
|
|
|
class CPA_EXPORT CPA_DialogList : public CFormView
|
|
{
|
|
/* Construction*/
|
|
protected:
|
|
CPA_EditorBase *m_pOwnerEditor;
|
|
|
|
CPA_List<CPA_ListForDialog> m_stListOfListObjects;
|
|
CPA_ListForDialog * m_pCurrentList;
|
|
CPA_BaseObject * m_pSelectedObject;
|
|
CPA_BaseObject * m_pSelectedParent;
|
|
CPA_BaseObject * m_pClickedObject;
|
|
CPA_BaseObject * m_pClickedParent;
|
|
BOOL m_bInitialised;
|
|
BOOL m_bButtonState;
|
|
BOOL m_bTestEnabled;
|
|
CString m_csTypeName;
|
|
CString m_csTestName;
|
|
|
|
public:
|
|
/* standard constructor*/
|
|
CPA_DialogList (CWnd* pParent = NULL);
|
|
|
|
/* get functions*/
|
|
CPA_ListForDialog * GetListFromName (CString csName);
|
|
CPA_ListForDialog * GetCurrentList (void) { return m_pCurrentList; }
|
|
CPA_BaseObject * GetSelectedObject (void) { return m_pSelectedObject; }
|
|
CPA_BaseObject * GetSelectedParent (void) { return m_pSelectedParent; }
|
|
CString GetCurrentType (void) { return m_csTypeName; }
|
|
/* ALX*/
|
|
HWND GetComboHandle (void) { return m_cComboType . m_hWnd; }
|
|
HWND GetListHandle (void) { return m_cListObjects . m_hWnd; }
|
|
HWND GetTreeHandle (void) { return m_cHierarchy . m_hWnd; }
|
|
HWND GetTestButtonHandle (void) { return m_cButtonTest . m_hWnd; }
|
|
/* End ALX*/
|
|
|
|
/* set functions*/
|
|
void SetDefaultButtonState (BOOL bEnabled) { m_bButtonState = bEnabled; }
|
|
void SetDefaultTestName (CString csName) { m_csTestName = csName; }
|
|
void SetDefaultTypeName (CString csName) { m_csTypeName = csName; }
|
|
void SetCurrentType (CString csName);
|
|
|
|
void SetPermanentOrder (tdeListOrder ePermanentOrder);
|
|
void SetPermanentDisplay (BOOL bPermanentDisplay);
|
|
void SetPermanentHeaders (BOOL bColumnHeaders);
|
|
void SetPermanentStyle (long lPermanentStyle);
|
|
|
|
void SetDefaultOrder (tdeListOrder eDefaultOrder);
|
|
void SetDefaultDisplay (BOOL bDefaultDisplay);
|
|
void SetDefaultHeaders (BOOL bColumnHeaders);
|
|
void SetDefaultStyle (long lDefaultStyle);
|
|
|
|
void SetItemInfo (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, void *pInfo);
|
|
void * GetItemInfo (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
|
|
|
|
int GetItemIcon (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
|
|
void SetItemIcon (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iIcon);
|
|
|
|
int GetItemState (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent);
|
|
void SetItemState (CString csListName, CPA_BaseObject *pObject, CPA_BaseObject *pParent, int iState);
|
|
|
|
/* Dialog*/
|
|
void fn_vInitDialog (CPA_EditorBase *pOwnerEditor, CWnd *pParent);
|
|
void fn_vInitAllLists (void);
|
|
void fn_vReinitDialog (void);
|
|
void fn_vInitComboType (void);
|
|
void fn_vInitButtonTest (CString CzName, BOOL bButtonState, BOOL bEnabled);
|
|
void fn_vUpdateSelection (tdeListReinitMode eType);
|
|
void fn_vAddANewList (CString csName, CPA_BaseObjectList *pListObjects,
|
|
CImageList *pIconList = NULL, CImageList *pStateList = NULL,
|
|
tdeListOrder eOrder = E_lo_Alpha, BOOL bCanChangeOrder = TRUE,
|
|
long lListStyle = C_lDrawName, BOOL bCanChangeStyle = TRUE);
|
|
|
|
void fn_vAddANewTree (CString csName, CPA_BaseObject *pTreeRoot,
|
|
CImageList *pIconList = NULL, CImageList *pStateList = NULL);
|
|
|
|
void fn_vDeleteAList (CString csName);
|
|
|
|
void fn_vInitHierarchy (void);
|
|
void fn_vInitListObjects (void);
|
|
BOOL fn_bCanInsertElement (CPA_BaseObject *pElem);
|
|
|
|
void fn_vOnDragDropEndHierarchy (void);
|
|
BOOL fn_bAcceptAsDragDropTarget (HTREEITEM hTarget);
|
|
void fn_vOnDblClkHierarchyTree (void);
|
|
|
|
BOOL fn_bOnKeyDownInControl (UINT nChar, UINT nRepCnt, UINT nFlags);
|
|
BOOL fn_bOnKeyUpInControl (UINT nChar, UINT nRepCnt, UINT nFlags);
|
|
|
|
void fn_vRedrawElement (CPA_BaseObject *pObject, BOOL bEnsureVisible);
|
|
|
|
protected:
|
|
void fn_vReinitPosition (CWnd *pControl, CWnd *pRef, tdeListControlPos ePos);
|
|
|
|
/* Dialog Data*/
|
|
/*{{AFX_DATA(CPA_DialogList)*/
|
|
enum { IDD = CPA_IDD_DIALOGLIST };
|
|
CComboBox m_cComboType;
|
|
CPA_SortedListBox m_cListObjects;
|
|
CPA_HierarchyTree m_cHierarchy;
|
|
CButton m_cButtonTest;
|
|
/*}}AFX_DATA*/
|
|
|
|
/* Overrides*/
|
|
/* ClassWizard generated virtual function overrides*/
|
|
/*{{AFX_VIRTUAL(CPA_DialogList)*/
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); /* DDX/DDV support*/
|
|
/*}}AFX_VIRTUAL*/
|
|
|
|
|
|
/* Implementation*/
|
|
protected:
|
|
|
|
/* Generated message map functions*/
|
|
/*{{AFX_MSG(CPA_DialogList)*/
|
|
afx_msg void OnSelchangeComboType();
|
|
afx_msg void OnButtonTest();
|
|
afx_msg void OnSelchangeListObjects(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnDblClkListObjects(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnSelchangeHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnDblClkHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnBeginDragHierarchy(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnSize(UINT, int, int);
|
|
/*}}AFX_MSG*/
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
#endif /*__DIALOGLIST_H__*/
|
|
#endif /* ACTIVE_EDITOR*/
|