111 lines
3.2 KiB
C++
111 lines
3.2 KiB
C++
////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Crytek Engine Source File.
|
|
// Copyright (C), Crytek Studios, 2002.
|
|
// -------------------------------------------------------------------------
|
|
// File name: entityprotlibdialog.h
|
|
// Version: v1.00
|
|
// Created: 22/1/2003 by Timur.
|
|
// Compilers: Visual Studio.NET
|
|
// Description:
|
|
// -------------------------------------------------------------------------
|
|
// History:
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __entityprotlibdialog_h__
|
|
#define __entityprotlibdialog_h__
|
|
#pragma once
|
|
|
|
#include "BaseLibraryDialog.h"
|
|
#include "Controls\SplitterWndEx.h"
|
|
#include "Controls\TreeCtrlEx.h"
|
|
#include "Controls\PropertyCtrl.h"
|
|
#include "Controls\PreviewModelCtrl.h"
|
|
#include "EntityScriptDialog.h"
|
|
|
|
class CEntityPrototypeManager;
|
|
class CEntityPrototype;
|
|
struct IEntitySystem;
|
|
struct IEntity;
|
|
|
|
/** Dialog which hosts entity prototype library.
|
|
*/
|
|
class CEntityProtLibDialog : public CBaseLibraryDialog
|
|
{
|
|
DECLARE_DYNAMIC(CEntityProtLibDialog)
|
|
public:
|
|
CEntityProtLibDialog( CWnd *pParent );
|
|
~CEntityProtLibDialog();
|
|
|
|
// Called every frame.
|
|
void Update();
|
|
virtual UINT GetDialogMenuID();
|
|
|
|
protected:
|
|
void InitToolbar();
|
|
void DoDataExchange(CDataExchange* pDX);
|
|
BOOL OnInitDialog();
|
|
afx_msg void OnDestroy();
|
|
afx_msg void OnSize(UINT nType, int cx, int cy);
|
|
afx_msg void OnAddPrototype();
|
|
afx_msg void OnPlay();
|
|
afx_msg void OnUpdatePlay( CCmdUI* pCmdUI );
|
|
afx_msg void OnShowDescription();
|
|
afx_msg void OnDescriptionChange();
|
|
afx_msg void OnAssignToSelection();
|
|
afx_msg void OnSelectAssignedObjects();
|
|
afx_msg void OnNotifyTreeRClick(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnBeginDrag(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
|
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
|
|
afx_msg void OnCopy();
|
|
afx_msg void OnPaste();
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void SelectItem( CBaseLibraryItem *item,bool bForceReload=false );
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
// IDocListener listener implementation
|
|
//////////////////////////////////////////////////////////////////////////
|
|
virtual void OnNewDocument();
|
|
virtual void OnLoadDocument();
|
|
virtual void OnCloseDocument();
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
void SpawnEntity( CEntityPrototype *prototype );
|
|
void ReleaseEntity();
|
|
void OnUpdateProperties( IVariable *var );
|
|
void OnReloadEntityScript();
|
|
CString SelectEntityClass();
|
|
CEntityPrototype* GetSelectedPrototype();
|
|
|
|
|
|
DECLARE_MESSAGE_MAP()
|
|
|
|
CSplitterWndEx m_wndHSplitter;
|
|
CSplitterWndEx m_wndVSplitter;
|
|
CSplitterWndEx m_wndScriptPreviewSplitter;
|
|
|
|
//CModelPreview
|
|
CEntityScriptDialog m_scriptDialog;
|
|
CPreviewModelCtrl m_previewCtrl;
|
|
CPropertyCtrl m_propsCtrl;
|
|
CXTEdit m_descriptionEditBox;
|
|
CImageList m_imageList;
|
|
|
|
//! Selected Prototype.
|
|
IEntity* m_entity;
|
|
IEntitySystem *m_pEntitySystem;
|
|
CString m_visualObject;
|
|
|
|
bool m_bEntityPlaying;
|
|
bool m_bShowDescription;
|
|
|
|
// Prototype manager.
|
|
CEntityPrototypeManager *m_pEntityManager;
|
|
};
|
|
|
|
#endif // __entityprotlibdialog_h__
|