summaryrefslogtreecommitdiff
path: root/win/Stepdlg.cpp
diff options
context:
space:
mode:
authordocwhat1999-11-14 06:43:18 +0000
committerdocwhat1999-11-14 06:43:18 +0000
commitd71eec8062e852e56f03102ba4b4e87dc485821d (patch)
tree452368ad0e7e24627e517a0c88c2508d02cea6dc /win/Stepdlg.cpp
parent2046090b7ce8dd901ce43e650be5acf44016d714 (diff)
Initial revision
git-svn-id: http://svn.leocad.org/trunk@2 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'win/Stepdlg.cpp')
-rw-r--r--win/Stepdlg.cpp159
1 files changed, 159 insertions, 0 deletions
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);
+}
+*/