From d71eec8062e852e56f03102ba4b4e87dc485821d Mon Sep 17 00:00:00 2001 From: docwhat Date: Sun, 14 Nov 1999 06:43:18 +0000 Subject: Initial revision git-svn-id: http://svn.leocad.org/trunk@2 c7d43263-9d01-0410-8a33-9dba5d9f93d6 --- win/Stepdlg.cpp | 159 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 win/Stepdlg.cpp (limited to 'win/Stepdlg.cpp') diff --git a/win/Stepdlg.cpp b/win/Stepdlg.cpp new file mode 100644 index 0000000..b0dff78 --- /dev/null +++ b/win/Stepdlg.cpp @@ -0,0 +1,159 @@ +// StepDlg.cpp : implementation file +// + +#include "stdafx.h" +#include "leocad.h" +#include "StepDlg.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CStepDlg dialog + + +CStepDlg::CStepDlg(CStepDlg** pointer, CWnd* pParent) + : CDialog(CStepDlg::IDD, pParent) +{ + m_pView = pParent; + m_pPointer = pointer; + + //{{AFX_DATA_INIT(CStepDlg) + m_nStep = 0; + //}}AFX_DATA_INIT +} + + +void CStepDlg::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CStepDlg) + DDX_Control(pDX, IDC_STEP_SLIDER, m_Slider); + DDX_Text(pDX, IDC_STEP_EDIT, m_nStep); + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CStepDlg, CDialog) + //{{AFX_MSG_MAP(CStepDlg) + ON_BN_CLICKED(IDAPPLY, OnApply) + ON_WM_HSCROLL() + ON_WM_DESTROY() + ON_EN_CHANGE(IDC_STEP_EDIT, OnEditChange) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CStepDlg message handlers + +void CStepDlg::UpdateRange(int nTime, int nTotal) +{ + m_Slider.SetRange (1, nTotal); + m_Slider.SetPos (nTime); + ((CSpinButtonCtrl*)GetDlgItem(IDC_STEP_SPIN))->SetRange(1, nTotal); + m_nStep = nTime; + UpdateData(FALSE); +} + +void CStepDlg::OnCancel() +{ + DestroyWindow(); +} + +void CStepDlg::OnOK() +{ + UpdateData(); + m_pView->PostMessage(WM_LC_SET_STEP, m_nStep); + DestroyWindow(); +} + +void CStepDlg::OnApply() +{ + UpdateData(); + m_pView->PostMessage(WM_LC_SET_STEP, m_nStep); +} + +void CStepDlg::PostNcDestroy() +{ + *m_pPointer = NULL; + delete this; +} + +void CStepDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) +{ + m_nStep = m_Slider.GetPos(); + UpdateData(FALSE); + + CDialog::OnHScroll(nSBCode, nPos, pScrollBar); +} + +void CStepDlg::OnEditChange() +{ + if (m_Slider.m_hWnd) + { + UpdateData(); + m_Slider.SetPos(m_nStep); + } +} + +void CStepDlg::OnDestroy() +{ + RECT rc; + GetWindowRect(&rc); + char buf[30]; + sprintf(buf, "%d, %d", rc.top, rc.left); + AfxGetApp()->WriteProfileString ("Settings", "Step Dialog", buf); + + CDialog::OnDestroy(); +} +/* +void CStepDlg::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) +{ + CRect rc = lpncsp->rgrc[0]; + rc.DeflateRect(2, 2, 2, 2); + rc.top += 10; +// rc.bottom -= 10; + lpncsp->rgrc[0] = rc; +} + +void CStepDlg::OnNcPaint() +{ + CWindowDC dc(this); + CRect rectClient; + GetClientRect(rectClient); + CRect rectWindow; + GetWindowRect(rectWindow); + ScreenToClient(rectWindow); + + rectWindow.OffsetRect(-rectWindow.left, -rectWindow.top+2); + rectWindow.bottom = rectWindow.top + 10; + ::FillRect(dc.m_hDC, rectWindow, (HBRUSH)(COLOR_ACTIVECAPTION+1)); + + CRect rectBorder; + GetWindowRect(rectBorder); + rectBorder.OffsetRect(-rectBorder.left, -rectBorder.top); + + dc.Draw3dRect(rectBorder, ::GetSysColor(COLOR_BTNFACE), ::GetSysColor(COLOR_3DDKSHADOW)); + rectBorder.DeflateRect(1, 1); + dc.Draw3dRect(rectBorder, ::GetSysColor(COLOR_3DHIGHLIGHT), ::GetSysColor(COLOR_BTNSHADOW)); + + rectClient.OffsetRect(-rectWindow.left, -rectWindow.top); + dc.ExcludeClipRect(rectClient); + + // draw borders in non-client area + rectWindow.OffsetRect(-rectWindow.left, -rectWindow.top); + + // erase parts not drawn + dc.IntersectClipRect(rectWindow); + + // erase NC background the hard way +// HBRUSH hbr = (HBRUSH)GetClassLong(m_hWnd, GCL_HBRBACKGROUND); +// ::FillRect(dc.m_hDC, rectWindow, hbr); + + + ReleaseDC(&dc); +} +*/ -- cgit v1.2.3