302 lines
9.2 KiB
C++
302 lines
9.2 KiB
C++
|
// NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
|
||
|
// Copyright (C) 2010 Winch Gate Property Limited
|
||
|
//
|
||
|
// This program is free software: you can redistribute it and/or modify
|
||
|
// it under the terms of the GNU Affero General Public License as
|
||
|
// published by the Free Software Foundation, either version 3 of the
|
||
|
// License, or (at your option) any later version.
|
||
|
//
|
||
|
// This program is distributed in the hope that it will be useful,
|
||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
// GNU Affero General Public License for more details.
|
||
|
//
|
||
|
// You should have received a copy of the GNU Affero General Public License
|
||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
// vegetable_copy_dlg.cpp : implementation file
|
||
|
//
|
||
|
|
||
|
#include "std_afx.h"
|
||
|
#include "object_viewer.h"
|
||
|
#include "vegetable_copy_dlg.h"
|
||
|
#include "vegetable_dlg.h"
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
CVegetableCopyDlg::CLastSetup CVegetableCopyDlg::_LastSetup;
|
||
|
|
||
|
CVegetableCopyDlg::CLastSetup::CLastSetup()
|
||
|
{
|
||
|
SubsetCopy = FALSE;
|
||
|
ScaleZ = FALSE;
|
||
|
ScaleXY = FALSE;
|
||
|
RotateZ = FALSE;
|
||
|
RotateY = FALSE;
|
||
|
RotateX = FALSE;
|
||
|
Mesh = FALSE;
|
||
|
MaxDensity = FALSE;
|
||
|
Distance = FALSE;
|
||
|
Density = FALSE;
|
||
|
ColorSetup = FALSE;
|
||
|
ColorNoise = FALSE;
|
||
|
BendPhase = FALSE;
|
||
|
BendFactor = FALSE;
|
||
|
AngleSetup = FALSE;
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// CVegetableCopyDlg dialog
|
||
|
|
||
|
|
||
|
CVegetableCopyDlg::CVegetableCopyDlg(CVegetableDlg *vegetableDlg, CWnd* pParent /*=NULL*/)
|
||
|
: CDialog(CVegetableCopyDlg::IDD, pParent), _VegetableDlg(vegetableDlg)
|
||
|
{
|
||
|
//{{AFX_DATA_INIT(CVegetableCopyDlg)
|
||
|
SubsetCopy = FALSE;
|
||
|
ScaleZ = FALSE;
|
||
|
ScaleXY = FALSE;
|
||
|
RotateZ = FALSE;
|
||
|
RotateY = FALSE;
|
||
|
RotateX = FALSE;
|
||
|
Mesh = FALSE;
|
||
|
MaxDensity = FALSE;
|
||
|
Distance = FALSE;
|
||
|
Density = FALSE;
|
||
|
ColorSetup = FALSE;
|
||
|
ColorNoise = FALSE;
|
||
|
BendPhase = FALSE;
|
||
|
BendFactor = FALSE;
|
||
|
AngleSetup = FALSE;
|
||
|
VegetableSelected = -1;
|
||
|
//}}AFX_DATA_INIT
|
||
|
}
|
||
|
|
||
|
|
||
|
void CVegetableCopyDlg::DoDataExchange(CDataExchange* pDX)
|
||
|
{
|
||
|
CDialog::DoDataExchange(pDX);
|
||
|
//{{AFX_DATA_MAP(CVegetableCopyDlg)
|
||
|
DDX_Control(pDX, IDC_LIST1, VegetableList);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_SUBSET_COPY, CheckSubsetCopy);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_SCALEZ, CheckScaleZ);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_SCALEXY, CheckScaleXY);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_ROTATEZ, CheckRotateZ);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_ROTATEY, CheckRotateY);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_ROTATEX, CheckRotateX);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_MESH, CheckMesh);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_MAXDENSITY, CheckMaxDensity);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_DISTANCE, CheckDistance);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_DENSITY, CheckDensity);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_COLORSETUP, CheckColorSetup);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_COLORNOISE, CheckColorNoise);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_BENDPHASE, CheckBendPhase);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_BENDFACTOR, CheckBendFactor);
|
||
|
DDX_Control(pDX, IDC_CHECK_VEGETABLE_ANGLESETUP, CheckAngleSetup);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_SUBSET_COPY, SubsetCopy);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_SCALEZ, ScaleZ);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_SCALEXY, ScaleXY);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_ROTATEZ, RotateZ);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_ROTATEY, RotateY);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_ROTATEX, RotateX);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_MESH, Mesh);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_MAXDENSITY, MaxDensity);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_DISTANCE, Distance);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_DENSITY, Density);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_COLORSETUP, ColorSetup);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_COLORNOISE, ColorNoise);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_BENDPHASE, BendPhase);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_BENDFACTOR, BendFactor);
|
||
|
DDX_Check(pDX, IDC_CHECK_VEGETABLE_ANGLESETUP, AngleSetup);
|
||
|
DDX_LBIndex(pDX, IDC_LIST1, VegetableSelected);
|
||
|
//}}AFX_DATA_MAP
|
||
|
}
|
||
|
|
||
|
|
||
|
BEGIN_MESSAGE_MAP(CVegetableCopyDlg, CDialog)
|
||
|
//{{AFX_MSG_MAP(CVegetableCopyDlg)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_APPEARANCE_NONE, OnButtonVegetableAppearanceNone)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_APPERANCE_ALL, OnButtonVegetableApperanceAll)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_GENERAL_ALL, OnButtonVegetableGeneralAll)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_GENERAL_NONE, OnButtonVegetableGeneralNone)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_POSITION_ALL, OnButtonVegetablePositionAll)
|
||
|
ON_BN_CLICKED(IDC_BUTTON_VEGETABLE_POSITION_NONE, OnButtonVegetablePositionNone)
|
||
|
ON_BN_CLICKED(IDC_CHECK_VEGETABLE_SUBSET_COPY, OnCheckVegetableSubsetCopy)
|
||
|
ON_WM_DESTROY()
|
||
|
ON_LBN_DBLCLK(IDC_LIST1, OnDblclkList1)
|
||
|
//}}AFX_MSG_MAP
|
||
|
END_MESSAGE_MAP()
|
||
|
|
||
|
|
||
|
// ***************************************************************************
|
||
|
// ***************************************************************************
|
||
|
// ***************************************************************************
|
||
|
// ***************************************************************************
|
||
|
|
||
|
|
||
|
// ***************************************************************************
|
||
|
void CVegetableCopyDlg::enableChecks(bool enable)
|
||
|
{
|
||
|
CheckScaleZ.EnableWindow(enable);
|
||
|
CheckScaleXY.EnableWindow(enable);
|
||
|
CheckRotateZ.EnableWindow(enable);
|
||
|
CheckRotateY.EnableWindow(enable);
|
||
|
CheckRotateX.EnableWindow(enable);
|
||
|
CheckMesh.EnableWindow(enable);
|
||
|
CheckMaxDensity.EnableWindow(enable);
|
||
|
CheckDistance.EnableWindow(enable);
|
||
|
CheckDensity.EnableWindow(enable);
|
||
|
CheckColorSetup.EnableWindow(enable);
|
||
|
CheckColorNoise.EnableWindow(enable);
|
||
|
CheckBendPhase.EnableWindow(enable);
|
||
|
CheckBendFactor.EnableWindow(enable);
|
||
|
CheckAngleSetup.EnableWindow(enable);
|
||
|
}
|
||
|
|
||
|
|
||
|
// ***************************************************************************
|
||
|
// ***************************************************************************
|
||
|
// CVegetableCopyDlg message handlers
|
||
|
// ***************************************************************************
|
||
|
// ***************************************************************************
|
||
|
|
||
|
void CVegetableCopyDlg::OnButtonVegetableGeneralAll()
|
||
|
{
|
||
|
CheckMesh.SetCheck(1);
|
||
|
CheckDistance.SetCheck(1);
|
||
|
CheckDensity.SetCheck(1);
|
||
|
CheckMaxDensity.SetCheck(1);
|
||
|
CheckAngleSetup.SetCheck(1);
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnButtonVegetableGeneralNone()
|
||
|
{
|
||
|
CheckMesh.SetCheck(0);
|
||
|
CheckDistance.SetCheck(0);
|
||
|
CheckDensity.SetCheck(0);
|
||
|
CheckMaxDensity.SetCheck(0);
|
||
|
CheckAngleSetup.SetCheck(0);
|
||
|
}
|
||
|
|
||
|
|
||
|
void CVegetableCopyDlg::OnButtonVegetableApperanceAll()
|
||
|
{
|
||
|
CheckBendPhase.SetCheck(1);
|
||
|
CheckBendFactor.SetCheck(1);
|
||
|
CheckColorNoise.SetCheck(1);
|
||
|
CheckColorSetup.SetCheck(1);
|
||
|
}
|
||
|
void CVegetableCopyDlg::OnButtonVegetableAppearanceNone()
|
||
|
{
|
||
|
CheckBendPhase.SetCheck(0);
|
||
|
CheckBendFactor.SetCheck(0);
|
||
|
CheckColorNoise.SetCheck(0);
|
||
|
CheckColorSetup.SetCheck(0);
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnButtonVegetablePositionAll()
|
||
|
{
|
||
|
CheckScaleXY.SetCheck(1);
|
||
|
CheckScaleZ.SetCheck(1);
|
||
|
CheckRotateX.SetCheck(1);
|
||
|
CheckRotateY.SetCheck(1);
|
||
|
CheckRotateZ.SetCheck(1);
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnButtonVegetablePositionNone()
|
||
|
{
|
||
|
CheckScaleXY.SetCheck(0);
|
||
|
CheckScaleZ.SetCheck(0);
|
||
|
CheckRotateX.SetCheck(0);
|
||
|
CheckRotateY.SetCheck(0);
|
||
|
CheckRotateZ.SetCheck(0);
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnCheckVegetableSubsetCopy()
|
||
|
{
|
||
|
// enable checks if needed.
|
||
|
enableChecks(CheckSubsetCopy.GetCheck()==1);
|
||
|
}
|
||
|
|
||
|
BOOL CVegetableCopyDlg::OnInitDialog()
|
||
|
{
|
||
|
// setup flags before the UpdateData
|
||
|
SubsetCopy= _LastSetup.SubsetCopy;
|
||
|
ScaleZ= _LastSetup.ScaleZ;
|
||
|
ScaleXY= _LastSetup.ScaleXY;
|
||
|
RotateZ= _LastSetup.RotateZ;
|
||
|
RotateY= _LastSetup.RotateY;
|
||
|
RotateX= _LastSetup.RotateX;
|
||
|
Mesh= _LastSetup.Mesh;
|
||
|
MaxDensity= _LastSetup.MaxDensity;
|
||
|
Distance= _LastSetup.Distance;
|
||
|
Density= _LastSetup.Density;
|
||
|
ColorSetup= _LastSetup.ColorSetup;
|
||
|
ColorNoise= _LastSetup.ColorNoise;
|
||
|
BendPhase= _LastSetup.BendPhase;
|
||
|
BendFactor= _LastSetup.BendFactor;
|
||
|
AngleSetup= _LastSetup.AngleSetup;
|
||
|
|
||
|
|
||
|
CDialog::OnInitDialog();
|
||
|
|
||
|
// enable checks if needed.
|
||
|
enableChecks(CheckSubsetCopy.GetCheck()==1);
|
||
|
|
||
|
|
||
|
// Init the control list.
|
||
|
uint num= _VegetableDlg->getNumVegetables();
|
||
|
for(uint i=0; i<num; i++)
|
||
|
{
|
||
|
VegetableList.AddString(_VegetableDlg->getVegetableName(i).c_str());
|
||
|
}
|
||
|
|
||
|
|
||
|
return TRUE; // return TRUE unless you set the focus to a control
|
||
|
// EXCEPTION: OCX Property Pages should return FALSE
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnDestroy()
|
||
|
{
|
||
|
CDialog::OnDestroy();
|
||
|
|
||
|
// save setup in _LastSetup.
|
||
|
_LastSetup.SubsetCopy= SubsetCopy;
|
||
|
_LastSetup.ScaleZ= ScaleZ;
|
||
|
_LastSetup.ScaleXY= ScaleXY;
|
||
|
_LastSetup.RotateZ= RotateZ;
|
||
|
_LastSetup.RotateY= RotateY;
|
||
|
_LastSetup.RotateX= RotateX;
|
||
|
_LastSetup.Mesh= Mesh;
|
||
|
_LastSetup.MaxDensity= MaxDensity;
|
||
|
_LastSetup.Distance= Distance;
|
||
|
_LastSetup.Density= Density;
|
||
|
_LastSetup.ColorSetup= ColorSetup;
|
||
|
_LastSetup.ColorNoise= ColorNoise;
|
||
|
_LastSetup.BendPhase= BendPhase;
|
||
|
_LastSetup.BendFactor= BendFactor;
|
||
|
_LastSetup.AngleSetup= AngleSetup;
|
||
|
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnOK()
|
||
|
{
|
||
|
UpdateData();
|
||
|
if(VegetableSelected!=LB_ERR)
|
||
|
{
|
||
|
CDialog::OnOK();
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
MessageBox("Select a vegetable to copy first", "Error", MB_OK | MB_ICONWARNING);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void CVegetableCopyDlg::OnDblclkList1()
|
||
|
{
|
||
|
UpdateData();
|
||
|
// DblClck select the name.
|
||
|
EndDialog(IDOK);
|
||
|
}
|