mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
//========= 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
|
||||
Reference in New Issue
Block a user