| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- /*
- ** Command & Conquer Renegade(tm)
- ** Copyright 2025 Electronic Arts Inc.
- **
- ** This program is free software: you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation, either version 3 of the License, or
- ** (at your option) any later version.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- #if !defined(AFX_DATATREEVIEW_H__2BB39E40_5D3A_11D2_9FC6_00104B791122__INCLUDED_)
- #define AFX_DATATREEVIEW_H__2BB39E40_5D3A_11D2_9FC6_00104B791122__INCLUDED_
- #if _MSC_VER >= 1000
- #pragma once
- #endif // _MSC_VER >= 1000
- // DataTreeView.h : header file
- //
- #include "AfxCView.H"
- #include "AssetTypes.H"
- #include "Vector.H"
- // Forward declarations
- class RenderObjClass;
- class AssetInfoClass;
- /////////////////////////////////////////////////////////////////////////////
- //
- // CDataTreeView view
- //
- class CDataTreeView : public CTreeView
- {
- protected:
- CDataTreeView(); // protected constructor used by dynamic creation
- DECLARE_DYNCREATE(CDataTreeView)
- // Attributes
- public:
- // Operations
- public:
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CDataTreeView)
- public:
- virtual void OnInitialUpdate();
- protected:
- virtual void OnDraw(CDC* pDC); // overridden to draw this view
- virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
- //}}AFX_VIRTUAL
- // Implementation
- protected:
- virtual ~CDataTreeView();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- // Generated message map functions
- protected:
- //{{AFX_MSG(CDataTreeView)
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnSelChanged(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnDeleteItem(NMHDR* pNMHDR, LRESULT* pResult);
- afx_msg void OnDblclk(NMHDR* pNMHDR, LRESULT* pResult);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- public:
- /////////////////////////////////////////////////////////////////////
- // Public methods
- /////////////////////////////////////////////////////////////////////
-
- //
- // Asset insertion methods
- //
- bool Add_Asset_To_Tree (LPCTSTR name, ASSET_TYPE type, bool bselect);
- void LoadAssetsIntoTree (void);
- void Refresh_Asset (LPCTSTR new_name, LPCTSTR old_name, ASSET_TYPE type);
- //
- // Animation insertion methods
- //
- void LoadAnimationsIntoTree (void);
- void LoadAnimationsIntoTree (HTREEITEM hItem);
- bool Are_Anims_Restricted (void) const { return m_RestrictAnims; }
- void Restrict_Anims (bool onoff);
- //
- // Texture insertion methods
- //
- void Load_Materials_Into_Tree (void);
- //
- // Display methods
- //
- void Display_Asset (HTREEITEM htree_item = NULL);
- void Select_Next (void);
- void Select_Prev (void);
- void Reload_Lightmap_Models (void);
- //
- // Information methods
- //
- RenderObjClass * Get_Current_Render_Obj (void) const;
- AssetInfoClass * Get_Current_Asset_Info (void) const;
- LPCTSTR GetCurrentSelectionName (void);
- ASSET_TYPE GetCurrentSelectionType (void);
- HTREEITEM FindChildItem (HTREEITEM hParentItem, LPCTSTR pszChildItemName);
- HTREEITEM FindChildItem (HTREEITEM hParentItem, RenderObjClass *prender_obj);
- HTREEITEM FindFirstChildItemBasedOnHierarchyName (HTREEITEM hParentItem, LPCTSTR pszHierarchyName);
- HTREEITEM FindSiblingItemBasedOnHierarchyName (HTREEITEM hCurrentItem, LPCTSTR pszHierarchyName);
- void Build_Render_Object_List (DynamicVectorClass <CString> &asset_list, HTREEITEM hparent = TVI_ROOT);
-
- //
- // Initialization methods
- //
- void CreateRootNodes (void);
- protected:
-
- ///////////////////////////////////////////////////////////////////////
- // Protected methods
- ///////////////////////////////////////////////////////////////////////
- ASSET_TYPE Determine_Tree_Location (RenderObjClass &render_obj, HTREEITEM &hroot, int &icon_index);
- void Determine_Tree_Location (ASSET_TYPE type, HTREEITEM &hroot, int &icon_index);
- RenderObjClass * Create_Render_Obj_To_Display (HTREEITEM htree_item);
- void Add_Emitters_To_Menu (HMENU hmenu, RenderObjClass &render_obj);
- void Free_Child_Models (HTREEITEM parent_item);
- private:
-
- ///////////////////////////////////////////////////////
- //
- // Private member data
- //
- HTREEITEM m_hMaterialsRoot;
- HTREEITEM m_hMeshRoot;
- HTREEITEM m_hAggregateRoot;
- HTREEITEM m_hLODRoot;
- HTREEITEM m_hMeshCollectionRoot;
- HTREEITEM m_hEmitterRoot;
- HTREEITEM m_hPrimitivesRoot;
- HTREEITEM m_hHierarchyRoot;
- HTREEITEM m_hSoundRoot;
- int m_iAnimationIcon;
- int m_iTCAnimationIcon;
- int m_iADAnimationIcon;
- int m_iMeshIcon;
- int m_iMaterialIcon;
- int m_iLODIcon;
- int m_iEmitterIcon;
- int m_iPrimitivesIcon;
- int m_iAggregateIcon;
- int m_iHierarchyIcon;
- int m_iSoundIcon;
- bool m_RestrictAnims;
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_DATATREEVIEW_H__2BB39E40_5D3A_11D2_9FC6_00104B791122__INCLUDED_)
|