This repository has been archived on 2023-01-27. You can view files and clone it, but cannot push or open issues or pull requests.
cad/fusion360/usr/Src/Interface/PBodySetup.cpp
2022-10-15 19:16:08 +02:00

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
}