133 lines
3.4 KiB
C++
133 lines
3.4 KiB
C++
// WorkspaceLengthView.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "WorkspaceDemo.h"
|
|
|
|
#include "WorkspaceTextDoc.h"
|
|
#include "WorkspaceLengthView.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWorkspaceLengthView
|
|
|
|
IMPLEMENT_DYNCREATE(CWorkspaceLengthView, CFormView)
|
|
|
|
CWorkspaceLengthView::CWorkspaceLengthView()
|
|
: CFormView(CWorkspaceLengthView::IDD)
|
|
{
|
|
//{{AFX_DATA_INIT(CWorkspaceLengthView)
|
|
m_sLength = _T("");
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
CWorkspaceLengthView::~CWorkspaceLengthView()
|
|
{
|
|
}
|
|
|
|
void CWorkspaceLengthView::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CFormView::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWorkspaceLengthView)
|
|
DDX_Control(pDX, IDC_LENGTH_SPIN, m_wndLengthSpin);
|
|
DDX_Text(pDX, IDC_LENGTH, m_sLength);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CWorkspaceLengthView, CFormView)
|
|
//{{AFX_MSG_MAP(CWorkspaceLengthView)
|
|
ON_COMMAND(ID_WINDOW_NEWTEXTWINDOW, OnWindowNewtextwindow)
|
|
ON_COMMAND(ID_WINDOW_NEWLENGTHWINDOW, OnWindowNewlengthwindow)
|
|
ON_EN_CHANGE(IDC_LENGTH, OnChangeLength)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWorkspaceLengthView diagnostics
|
|
|
|
#ifdef _DEBUG
|
|
void CWorkspaceLengthView::AssertValid() const
|
|
{
|
|
CFormView::AssertValid();
|
|
}
|
|
|
|
void CWorkspaceLengthView::Dump(CDumpContext& dc) const
|
|
{
|
|
CFormView::Dump(dc);
|
|
}
|
|
|
|
CWorkspaceTextDoc* CWorkspaceLengthView::GetDocument() // non-debug version is inline
|
|
{
|
|
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWorkspaceTextDoc)));
|
|
return (CWorkspaceTextDoc*)m_pDocument;
|
|
}
|
|
#endif //_DEBUG
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWorkspaceLengthView message handlers
|
|
|
|
void CWorkspaceLengthView::OnChangeLength()
|
|
{
|
|
// ... Check whether we have already passed OnInitialUpdate
|
|
if (m_wndLengthSpin.m_hWnd == NULL)
|
|
return;
|
|
|
|
if (!UpdateData(TRUE))
|
|
return;
|
|
int nNewLength = _ttoi(m_sLength);
|
|
|
|
CString sText = GetDocument()->GetText();
|
|
int nLength = sText.GetLength();
|
|
if (nLength < nNewLength)
|
|
sText += CString(_T('.'), nNewLength - nLength);
|
|
else
|
|
sText = sText.Left(nNewLength);
|
|
GetDocument()->SetText(sText);
|
|
|
|
m_sLength.Format(_T("%i"), nNewLength);
|
|
UpdateData(FALSE);
|
|
|
|
GetDocument()->UpdateAllViews(this);
|
|
}
|
|
|
|
void CWorkspaceLengthView::OnInitialUpdate()
|
|
{
|
|
CFormView::OnInitialUpdate();
|
|
|
|
m_wndLengthSpin.SetRange(0, UD_MAXVAL);
|
|
|
|
// Fit frame around view
|
|
ResizeParentToFit(FALSE);
|
|
}
|
|
|
|
void CWorkspaceLengthView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
|
|
{
|
|
UNREFERENCED_PARAMETER(pSender);
|
|
UNREFERENCED_PARAMETER(lHint);
|
|
UNREFERENCED_PARAMETER(pHint);
|
|
|
|
CString sText = GetDocument()->GetText();
|
|
m_sLength.Format(_T("%i"), sText.GetLength());
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CWorkspaceLengthView::OnWindowNewtextwindow()
|
|
{
|
|
CFrameWnd * pFrame =
|
|
((CWorkspaceDemoApp*)AfxGetApp())->m_pTextDocTemplate->CreateNewFrame(GetDocument(), GetParentFrame());
|
|
((CWorkspaceDemoApp*)AfxGetApp())->m_pTextDocTemplate->InitialUpdateFrame(pFrame, GetDocument());
|
|
}
|
|
|
|
void CWorkspaceLengthView::OnWindowNewlengthwindow()
|
|
{
|
|
CFrameWnd * pFrame =
|
|
((CWorkspaceDemoApp*)AfxGetApp())->m_pLengthDocTemplate->CreateNewFrame(GetDocument(), GetParentFrame());
|
|
((CWorkspaceDemoApp*)AfxGetApp())->m_pLengthDocTemplate->InitialUpdateFrame(pFrame, GetDocument());
|
|
}
|