Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef OBJECTPROPERTIES_H
#define OBJECTPROPERTIES_H
#pragma once
#include "MapClass.h"
#include "EditGameClass.h"
#include "ObjectPage.h"
#include "OP_Groups.h"
#include "AnchorMgr.h"
class COP_Entity; class COP_Flags; class COP_Output; class COP_Input; class COP_Model;
enum LayoutType_t;
//
// Wrap map classes in CObject so we can use runtime identification
// to pass edit data to the object pages.
//
class editCMapClass : public CObject, public CMapClass { DECLARE_DYNAMIC(editCMapClass)
public: // kludge:
MAPCLASSTYPE GetType() { return NULL; } BOOL IsMapClass(MAPCLASSTYPE Type) { return FALSE; } };
class editCEditGameClass : public CObject, public CEditGameClass { DECLARE_DYNAMIC(editCEditGameClass) };
class CObjectProperties : public CPropertySheet { DECLARE_DYNAMIC(CObjectProperties)
public:
CObjectProperties(void); virtual ~CObjectProperties(void);
CObjectProperties(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0); CObjectProperties(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
inline void UpdateGrouplist(void);
PVOID GetEditObject(CRuntimeClass *pType); PVOID GetEditObjectFromMapObject(CMapClass *pobj, CRuntimeClass *pType); void CopyDataToEditObjects(CMapClass *pobj); void SetPageToOutput(CEntityConnection *pConnection); void SetPageToInput(CEntityConnection *pConnection);
BOOL SetupPages(void); void CreatePages(void); void SaveData(void); void LoadDataForPages(int iPage = -1);
void SetObjectList(const CMapObjectList *pObjectList); void MarkDataDirty();
void SetOutputButtonState(int nState); void SetInputButtonState(int nState);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CObjectProperties)
virtual BOOL OnInitDialog(); //}}AFX_VIRTUAL
protected:
void AddObjectExpandGroups(CMapClass *pObject); void ReloadData();
LayoutType_t GetLayout(void); void GetTabsForLayout(LayoutType_t eLayoutType, bool &bEntity, bool &bGroups, bool &bFlags, bool &bModel);
void CreateButtons(void);
void UpdateOutputButton(void); void UpdateInputButton(void);
void SaveActivePage(void); void RestoreActivePage(void); void UpdateAnchors( CWnd *pPage );
CAnchorMgr m_AnchorMgr;
//
// Pages.
//
COP_Entity *m_pEntity; COP_Groups *m_pGroups; COP_Flags *m_pFlags; COP_Output *m_pOutput; COP_Input *m_pInput; COP_Model *m_pModel;
//
// instance button
//
CButton *m_pInstanceButton;
//
// Input/output connection buttons
//
CButton *m_pInputButton; CButton *m_pOutputButton;
HICON m_hIconOutputGood; HICON m_hIconOutputBad; HICON m_hIconInputGood; HICON m_hIconInputBad;
CPropertyPage *m_pDummy; //
bool m_bDummy; //
CMapObjectList m_DstObjects; // list of objects we work on
const CMapObjectList *m_pOrgObjects; // list of input object we will work on
CObjectPage **m_ppPages; // Pointers to the pages that are currently in use
int m_nPages; // Number of pages currently in use
CObjectPage *m_pLastActivePage; // Used for restoring the last active page when changing selection.
bool m_bDataDirty; // true if selected object somehow changed etc
bool m_bCanEdit; // true if the object can be edited
//{{AFX_MSG(CObjectProperties)
afx_msg void OnOK(void); afx_msg void OnApply(void); afx_msg void OnCancel(void); afx_msg void OnInputs(void); afx_msg void OnOutputs(void); afx_msg void OnEditInstance(void); afx_msg void OnClose(); afx_msg void OnPaint(); afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnSize( UINT nType, int cx, int cy ); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); //}}AFX_MSG
DECLARE_MESSAGE_MAP()
friend CObjectPage;
};
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
inline void CObjectProperties::UpdateGrouplist(void) { if (m_pGroups != NULL) { m_pGroups->UpdateGroupList(); } }
#endif // OBJECTPROPERTIES_H
|