Files
FC1/Editor/GridSettingsDialog.cpp
romkazvo 34d6c5d489 123
2023-08-07 19:29:24 +08:00

73 lines
2.0 KiB
C++

// GridSettingsDialog.cpp : implementation file
//
#include "stdafx.h"
#include "GridSettingsDialog.h"
#include "ViewManager.h"
// CGridSettingsDialog dialog
IMPLEMENT_DYNAMIC(CGridSettingsDialog, CDialog)
CGridSettingsDialog::CGridSettingsDialog(CWnd* pParent /*=NULL*/)
: CDialog(CGridSettingsDialog::IDD, pParent)
{
}
CGridSettingsDialog::~CGridSettingsDialog()
{
}
void CGridSettingsDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SNAP, m_snapToGrid);
DDX_Control(pDX, IDC_ANGLESNAP, m_angleSnap);
}
BEGIN_MESSAGE_MAP(CGridSettingsDialog, CDialog)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
BOOL CGridSettingsDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CGrid *pGrid = GetIEditor()->GetViewManager()->GetGrid();
m_gridSize.Create( this,IDC_GRID_SIZE,CNumberCtrl::LEFTALIGN );
m_gridScale.Create( this,IDC_GRID_SCALE,CNumberCtrl::LEFTALIGN );
m_angleSnapScale.Create( this,IDC_ANGLESNAP_SIZE,CNumberCtrl::LEFTALIGN );
m_angleSnapScale.SetInteger(true);
m_gridSize.SetInteger(true);
m_gridSize.SetRange( 0,1024 );
m_gridSize.SetValue( pGrid->size );
m_gridScale.SetValue( pGrid->scale );
m_snapToGrid.SetCheck( (pGrid->IsEnabled())?BST_CHECKED:BST_UNCHECKED );
m_angleSnap.SetCheck( (pGrid->IsAngleSnapEnabled())?BST_CHECKED:BST_UNCHECKED );
m_angleSnapScale.SetValue( pGrid->GetAngleSnap() );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//////////////////////////////////////////////////////////////////////////
void CGridSettingsDialog::OnOK()
{
CGrid *pGrid = GetIEditor()->GetViewManager()->GetGrid();
pGrid->Enable( m_snapToGrid.GetCheck() == BST_CHECKED );
pGrid->size = m_gridSize.GetValue();
pGrid->scale = m_gridScale.GetValue();
pGrid->bAngleSnapEnabled = m_snapToGrid.GetCheck() == BST_CHECKED;
pGrid->angleSnap = m_angleSnapScale.GetValue();
CDialog::OnOK();
}