51 lines
1.3 KiB
C++
51 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include <d3d.h>
|
|
typedef D3DXVECTOR4 EtVector4;
|
|
|
|
class CXTCustomPropertyGridItemVector4Color : public CXTPPropertyGridItem
|
|
{
|
|
public:
|
|
|
|
CXTCustomPropertyGridItemVector4Color(CString strCaption, EtVector4 Value, EtVector4* pBindVector = NULL);
|
|
CXTCustomPropertyGridItemVector4Color(UINT nID, EtVector4 Value, EtVector4* pBindVector = NULL);
|
|
|
|
virtual ~CXTCustomPropertyGridItemVector4Color(void);
|
|
|
|
public:
|
|
void SetVector(EtVector4 Value);
|
|
EtVector4 GetVector() { return m_vVector; }
|
|
void SetNormalized( bool bFlag ) { m_bNormalized = bFlag; }
|
|
|
|
void BindToVector(EtVector4 *pBindVector);
|
|
|
|
virtual BOOL OnDrawItemValue(CDC& dc, CRect rcValue);
|
|
virtual CRect GetValueRect();
|
|
virtual void OnInplaceButtonDown();
|
|
virtual void OnBeforeInsert();
|
|
|
|
protected:
|
|
EtVector4 m_vVector;
|
|
EtVector4 *m_pBindVector;
|
|
bool m_bNormalized;
|
|
|
|
private:
|
|
class CXTCustomPropertyGridItemVectorCase;
|
|
|
|
CXTCustomPropertyGridItemVectorCase *m_ItemVector[4];
|
|
|
|
CString VectorToString(EtVector4 Value);
|
|
EtVector4 StringToVector(CString strValue);
|
|
|
|
virtual void OnAddChildItem();
|
|
virtual void SetValue(CString strValue);
|
|
void UpdateChilds();
|
|
|
|
void SetX( CString szStr );
|
|
void SetY( CString szStr );
|
|
void SetZ( CString szStr );
|
|
void SetW( CString szStr );
|
|
void SetVector( int nIndex, CString szStr );
|
|
|
|
friend class CXTCustomPropertyGridItemVectorCase;
|
|
};
|