2025-11-27 16:46:48 +09:00

130 lines
3.0 KiB
C++

// WorkspaceGraphPropView.cpp : implementation file
//
#include "stdafx.h"
#include "WorkspaceDemo.h"
#include "WorkspaceGraphDoc.h"
#include "WorkspaceGraphPropView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWorkspaceGraphPropView
IMPLEMENT_DYNCREATE(CWorkspaceGraphPropView, CFormView)
CWorkspaceGraphPropView::CWorkspaceGraphPropView()
: CFormView(CWorkspaceGraphPropView::IDD)
{
//{{AFX_DATA_INIT(CWorkspaceGraphPropView)
m_sSides = _T("");
m_sColor = _T("");
//}}AFX_DATA_INIT
}
CWorkspaceGraphPropView::~CWorkspaceGraphPropView()
{
}
void CWorkspaceGraphPropView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWorkspaceGraphPropView)
DDX_Control(pDX, IDC_SIDES_SPIN, m_wndSidesSpin);
DDX_Text(pDX, IDC_SIDES, m_sSides);
DDX_Text(pDX, IDC_COLOR, m_sColor);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWorkspaceGraphPropView, CFormView)
//{{AFX_MSG_MAP(CWorkspaceGraphPropView)
ON_BN_CLICKED(IDC_COLOR_BROWSE, OnColorBrowse)
ON_EN_CHANGE(IDC_SIDES, OnChangeSides)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWorkspaceGraphPropView diagnostics
#ifdef _DEBUG
void CWorkspaceGraphPropView::AssertValid() const
{
CFormView::AssertValid();
}
void CWorkspaceGraphPropView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CWorkspaceGraphDoc* CWorkspaceGraphPropView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWorkspaceGraphDoc)));
return (CWorkspaceGraphDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CWorkspaceGraphPropView message handlers
void CWorkspaceGraphPropView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
m_wndSidesSpin.SetRange(3, 20);
// Fit frame around view
ResizeParentToFit(FALSE);
}
void CWorkspaceGraphPropView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
UNREFERENCED_PARAMETER(pSender);
UNREFERENCED_PARAMETER(lHint);
UNREFERENCED_PARAMETER(pHint);
COLORREF color = GetDocument()->GetColor();
int nSides = GetDocument()->GetSides();
m_sSides.Format(_T("%i"), nSides);
m_sColor.Format(_T("%i"), color);
UpdateData(FALSE);
}
void CWorkspaceGraphPropView::OnColorBrowse()
{
if (!UpdateData(TRUE))
return;
// Use color common dialog
CColorDialog colorDlg(_ttoi(m_sColor));
if (colorDlg.DoModal() == IDOK)
{
m_sColor.Format(_T("%i"), colorDlg.GetColor());
}
UpdateData(FALSE);
if (GetDocument()->SetColor(colorDlg.GetColor()))
GetDocument()->UpdateAllViews(this);
}
void CWorkspaceGraphPropView::OnChangeSides()
{
// ... Check whether OnInitialUpdate has been completed
if (m_wndSidesSpin.m_hWnd == NULL)
return;
if (!UpdateData(TRUE))
return;
if (GetDocument()->SetSides(_ttoi(m_sSides)))
GetDocument()->UpdateAllViews(this);
UpdateData(FALSE);
}