293 lines
6.4 KiB
C++
293 lines
6.4 KiB
C++
#include "StdAfx2.h"
|
|
|
|
#include "PCommonDialog.h"
|
|
#include "PBodySetup.h"
|
|
#include "..\..\include\interface\pbodysetup.h"
|
|
|
|
|
|
#define LAYOUT_STYLE (WS_CHILD|WS_VISIBLE)
|
|
#define LAYOUT_ShaderREE 130
|
|
|
|
|
|
|
|
int CPBodyCfg::OnSelect(int before/* =-1 */)
|
|
{
|
|
|
|
return -1;
|
|
}
|
|
|
|
CParameterDialog* CPBodyCfg::refresh(CKParameter*src)
|
|
{ return this; }
|
|
|
|
void CPBodyCfg::fillFlags()
|
|
{
|
|
|
|
BF_Move.SetCheck(true);
|
|
}
|
|
|
|
|
|
void CPBodyCfg::fillHullType()
|
|
{
|
|
|
|
|
|
|
|
HType.AddString("Sphere");
|
|
HType.AddString("Box");
|
|
HType.AddString("Capsule");
|
|
HType.AddString("Plane");
|
|
HType.AddString("Convex Mesh");
|
|
HType.AddString("Height Field");
|
|
HType.AddString("Wheel");
|
|
HType.AddString("Cloth");
|
|
HType.SetCurSel(0);
|
|
|
|
}
|
|
|
|
|
|
void CPBodyCfg::initSplitter()
|
|
{
|
|
|
|
|
|
|
|
|
|
//[...] //optional pre initialization steps
|
|
//int opt = mTestViControl.Create(WS_CHILD|WS_VISIBLE,r,pWnd,IDC_TRACKTEST);
|
|
/*if (opt)
|
|
{*/
|
|
|
|
// mTestViControl.SetColors(CZC_176,CZC_BLACK,CZC_176,CZC_WHITE,CZC_128,CZC_200);
|
|
/*
|
|
mTestViControl.SetFont(GetVIFont(VIFONT_NORMAL),FALSE);
|
|
mTestViControl.SetItemHeight(18);*/
|
|
//mTestViControl.SetWindowText("Shader Tree");
|
|
// mTestViControl.SetStyle(NTVS_DRAWHSEPARATOR);
|
|
// mTestViControl.SetPreAllocSize(2);
|
|
|
|
// Create columns
|
|
// mTestViControl.SetColumnCount(1);
|
|
//mTestViControl.SetColumn(0, "Shader", 0, 10);
|
|
|
|
//HTREEITEM newItem = mTestViControl.InsertItem("asddad", 0,0, mTestViControl.GetFirstVisibleItem() );
|
|
|
|
|
|
|
|
|
|
// newItem->Flags = NTVI_EDITABLE;
|
|
// newItem->Data = NULL;
|
|
|
|
/*HNTVITEM newItem;
|
|
newItem = mTestViControl.InsertItem("asddad", (HNTVITEM)NULL, TRUE);
|
|
newItem->Flags = NTVI_EDITABLE;
|
|
newItem->Data = NULL;*/
|
|
|
|
//}
|
|
|
|
}
|
|
void CPBodyCfg::Init(CParameterDialog *parent)
|
|
{
|
|
mParent = parent;
|
|
|
|
}
|
|
|
|
|
|
CPBodyCfg::~CPBodyCfg()
|
|
{
|
|
_destroy();
|
|
}
|
|
|
|
void CPBodyCfg::_destroy()
|
|
{
|
|
//::CPSharedBase::_destroy();
|
|
|
|
}
|
|
//CPSharedBase(this,Parameter)
|
|
CPBodyCfg::CPBodyCfg(CKParameter* Parameter,CK_CLASSID Cid) :CParameterDialog(Parameter,Cid)
|
|
{
|
|
setEditedParameter(Parameter);
|
|
//int snow = getNbDialogs();
|
|
|
|
|
|
}
|
|
|
|
|
|
LRESULT CPBodyCfg::OnRegisteredMouseWheel(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
|
|
WORD keyState = 0;
|
|
keyState |= (::GetKeyState(VK_CONTROL) < 0) ? MK_CONTROL : 0;
|
|
keyState |= (::GetKeyState(VK_SHIFT) < 0) ? MK_SHIFT : 0;
|
|
|
|
LRESULT lResult;
|
|
HWND hwFocus = ::GetFocus();
|
|
const HWND hwDesktop = ::GetDesktopWindow();
|
|
|
|
if (hwFocus == NULL)
|
|
lResult = SendMessage(WM_MOUSEWHEEL, (wParam << 16) | keyState, lParam);
|
|
else
|
|
{
|
|
do {
|
|
lResult = ::SendMessage(hwFocus, WM_MOUSEWHEEL,(wParam << 16) | keyState, lParam);
|
|
hwFocus = ::GetParent(hwFocus);
|
|
}
|
|
while (lResult == 0 && hwFocus != NULL && hwFocus != hwDesktop);
|
|
}
|
|
return lResult;
|
|
|
|
}
|
|
|
|
LRESULT CPBodyCfg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
switch (message)
|
|
{
|
|
|
|
/*
|
|
case WM_MOUSEWHEEL:
|
|
{
|
|
int cStates = GET_KEYSTATE_WPARAM(wParam);
|
|
int wheelDirection = GET_WHEEL_DELTA_WPARAM(wParam);
|
|
|
|
if (wheelDirection>0)
|
|
{
|
|
if ( mTestViControl.GetActiveTabIndex() +1 < mTestViControl.GetTabCount() )
|
|
{
|
|
mTestViControl.SetActiveTab(mTestViControl.GetActiveTabIndex() +1 );
|
|
}else{
|
|
mTestViControl.SetActiveTab( 0 );
|
|
}
|
|
}else
|
|
{
|
|
if ( mTestViControl.GetActiveTabIndex() -1 >=0 )
|
|
{
|
|
mTestViControl.SetActiveTab(mTestViControl.GetActiveTabIndex() - 1 );
|
|
}else{
|
|
mTestViControl.SetActiveTab(mTestViControl.GetTabCount());
|
|
}
|
|
}
|
|
|
|
break;
|
|
return NULL;
|
|
}
|
|
*/
|
|
case WM_LBUTTONDOWN:
|
|
case WM_LBUTTONDBLCLK:
|
|
{
|
|
|
|
|
|
int indexTabUnderMouse = 0;
|
|
indexTabUnderMouse = mTestViControl.GetTabUnderMouse();
|
|
if (indexTabUnderMouse >=0 )
|
|
{
|
|
mTestViControl.SetActiveTab(indexTabUnderMouse);
|
|
}
|
|
//HTREEITEM newItem = mTestViControl.InsertItem("asddad2323",mTestViControl.GetFirstVisibleItem(), mTestViControl.GetFirstVisibleItem() );
|
|
|
|
/*HTREEITEM newItem;
|
|
newItem = mTestViControl.InsertItem("asddad", (HTREEITEM)NULL, NULL);
|
|
*/
|
|
/*
|
|
HNTVITEM newItem;
|
|
newItem = mTestViControl.InsertItem("asddad", (HNTVITEM)NULL, TRUE);
|
|
newItem->Flags = NTVI_EDITABLE;
|
|
newItem->Data = NULL;
|
|
|
|
*/
|
|
/*
|
|
mTestViControl.UpdateWindow();
|
|
mTestViControl.ShowWindow(1);
|
|
*/
|
|
|
|
/*
|
|
mTestViControl.AddItem("asdasd",NULL);
|
|
int a = mTestViControl.GetSubItemCount(0);*/
|
|
|
|
/*
|
|
RECT r;
|
|
GetClientRect(&r);
|
|
|
|
CDC* pDC=CDC::FromHandle((HDC)wParam);
|
|
pDC->FillSolidRect(&r,RGB(100,200,200));*/
|
|
|
|
break;
|
|
|
|
}
|
|
case WM_ERASEBKGND:
|
|
{
|
|
/*RECT r;
|
|
GetClientRect(&r);
|
|
CDC* pDC=CDC::FromHandle((HDC)wParam);
|
|
pDC->FillSolidRect(&r,RGB(200,200,200));
|
|
return 1;*/
|
|
}break;
|
|
case CKWM_OK:
|
|
{
|
|
//CEdit *valueText = (CEdit*)GetDlgItem(IDC_EDIT);
|
|
/*CString l_strValue;
|
|
valueText->GetWindowText(l_strValue);
|
|
|
|
double d;
|
|
if (sscanf(l_strValue,"%Lf",&d)) {
|
|
parameter->SetValue(&d);
|
|
}*/
|
|
} break;
|
|
|
|
case CKWM_INIT:
|
|
{
|
|
|
|
RECT r;
|
|
GetClientRect(&r);
|
|
/*
|
|
CDC* pDC=CDC::FromHandle((HDC)wParam);*/
|
|
//initSplitter();
|
|
|
|
fillHullType();
|
|
char temp[64];
|
|
double d;
|
|
} break;
|
|
}
|
|
return CDialog::WindowProc(message, wParam, lParam);
|
|
}
|
|
|
|
void CPBodyCfg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
|
|
//CDialog::DoDataExchange(pDX);
|
|
CParameterDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CPBodyCfg)
|
|
|
|
DDX_Control(pDX, IDC_HULLTYPE, HType);
|
|
DDX_Control(pDX, IDC_LBL_HTYPE, LBL_HType);
|
|
|
|
DDX_Control(pDX, IDC_BFLAGS_MOVING,BF_Move);
|
|
DDX_Control(pDX, IDC_BFLAGS_GRAV,BF_Grav);
|
|
DDX_Control(pDX, IDC_BFLAGS_COLL,BF_Collision);
|
|
DDX_Control(pDX, IDC_BFLAGS_COLL_NOTIFY,BF_CollisionNotify);
|
|
|
|
DDX_Control(pDX, IDC_BFLAGS_KINEMATIC,BF_Kinematic);
|
|
DDX_Control(pDX, IDC_BFLAGS_TRIGGER,BF_TriggerShape);
|
|
DDX_Control(pDX, IDC_BFLAGS_SLEEP,BF_Sleep);
|
|
DDX_Control(pDX, IDC_BFLAGS_SSHAPE,BF_SubShape);
|
|
DDX_Control(pDX, IDC_BFLAGS_HIERARCHY,BF_Hierarchy);
|
|
DDX_Control(pDX, IDC_BFLAGS_DEFORMABLE,BF_Deformable);
|
|
DDX_Control(pDX, IDC_FLAGS_BG,BF_BG_Rect);
|
|
DDX_Control(pDX, IDC_LBL_FLAGS,LBL_Flags);
|
|
//}}AFX_DATA_MAP
|
|
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CPBodyCfg, CParameterDialog)
|
|
ON_WM_MOUSEMOVE()
|
|
ON_STN_CLICKED(IDC_LBL_FLAGS, OnStnClickedLblFlags)
|
|
ON_STN_CLICKED(IDC_DYNA_FLAGS_RECT, OnStnClickedDynaFlagsRect)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
void CPBodyCfg::OnStnClickedLblFlags()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
}
|
|
|
|
void CPBodyCfg::OnStnClickedDynaFlagsRect()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
}
|