// ScalePropDlg.cpp : implementation file // #include "stdafx.h" #include "MSVC5conview.h" #include "ScalePropDlg.h" #include "leadrastercontainercell.h" #include "leadscaleaction.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CScalePropDlg dialog CScalePropDlg::CScalePropDlg(CWnd* pParent /*=NULL*/) : CDialog(CScalePropDlg::IDD, pParent) { //{{AFX_DATA_INIT(CScalePropDlg) m_uCellIndex = 0; m_uSensitivity = 0; m_bCircleMouse = FALSE; m_uScale = 0; m_hIcon = NULL; //}}AFX_DATA_INIT } void CScalePropDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CScalePropDlg) DDX_Control(pDX, IDC_ACTION_SEN_EDT, m_edtSensitivity); DDX_Control(pDX, IDC_SCALEACTION_SCALE_EDT, m_edtScale); DDX_Control(pDX, IDC_ACTION_CELLINDEX_EDT, m_edtCellIndex); DDX_Control(pDX, IDC_ACTION_CUR_BTN, m_ActionCursor); DDX_Control(pDX, IDC_ACTION_CELLINDEX_COM, m_cmbCell); DDX_Control(pDX, IDC_ACTION_MOD_COM, m_cmbModifier); DDX_Control(pDX, IDC_ACTION_RIGHTKEY_COM, m_cmbDownKey); DDX_Control(pDX, IDC_ACTION_LEFTKEY_COM, m_cmbUpKey); DDX_Text(pDX, IDC_ACTION_CELLINDEX_EDT, m_uCellIndex); DDX_Text(pDX, IDC_ACTION_SEN_EDT, m_uSensitivity); DDX_Check(pDX, IDC_ACTION_CIRCLE_CHK, m_bCircleMouse); DDX_Text(pDX, IDC_SCALEACTION_SCALE_EDT, m_uScale); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CScalePropDlg, CDialog) //{{AFX_MSG_MAP(CScalePropDlg) ON_BN_CLICKED(IDC_ACTION_CUR_BTN, OnActionCurBtn) ON_BN_CLICKED(IDAPPLY, OnApply) ON_EN_CHANGE(IDC_ACTION_CELLINDEX_EDT, OnChangeActionCellindexEdt) ON_CBN_SELCHANGE(IDC_ACTION_CELLINDEX_COM, OnSelchangeActionCellindexCom) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CScalePropDlg message handlers void CScalePropDlg::OnActionCurBtn() { CConViewApp * pTheApp = (CConViewApp *)AfxGetApp(); if(pTheApp->GetIconFileName(m_FileName, (this->GetActiveWindow())->m_hWnd)) { m_hIcon = LoadCursorFromFile(m_FileName); m_ActionCursor.SetIcon(m_hIcon); } } void CScalePropDlg::OnApply() { CConViewApp * pTheApp = (CConViewApp *)AfxGetApp(); INT nVk; UINT uState = (8 >> (4 - m_cmbModifier.GetCurSel())); UpdateData(); m_pView->m_ConView.ScaleAction().SetCursor(pTheApp->hIconToIPictureDisp(m_hIcon)); m_pView->m_ConView.ScaleAction().SetCircularMouseMove(m_bCircleMouse); m_pView->m_ConView.ScaleAction().SetChange(m_uSensitivity); if(m_cmbCell.GetCurSel()) { INT nIndex; if (m_cmbCell.GetCurSel() == 1) nIndex = -1; else nIndex = m_uCellIndex; m_pView->m_ConView.ScaleAction().SetScaleFactor(m_uScale); m_pView->m_ConView.ScaleAction().SetAction(nIndex, CONVIEW_ACTIONLEVEL_CELL); } nVk = pTheApp->GetVirtualKey(&m_cmbUpKey); if (nVk != 0) { m_pView->m_ConView.ScaleAction().SetKey(nVk); m_pView->m_ConView.ScaleAction().SetModifier(uState); m_pView->m_ConView.ScaleAction().SetKeyboardAction(CONVIEW_MOUSEMOVE_UP); } nVk = pTheApp->GetVirtualKey(&m_cmbDownKey); if (nVk != 0) { m_pView->m_ConView.ScaleAction().SetKey(nVk); m_pView->m_ConView.ScaleAction().SetModifier(uState); m_pView->m_ConView.ScaleAction().SetKeyboardAction(CONVIEW_MOUSEMOVE_DOWN); } m_pView->m_ConView.ScaleAction().SetAction(0, CONVIEW_ACTIONLEVEL_CONTAINER); } void CScalePropDlg::OnOK() { OnApply(); CDialog::OnOK(); } BOOL CScalePropDlg::OnInitDialog() { CDialog::OnInitDialog(); CConViewApp * pTheApp = (CConViewApp *)AfxGetApp(); INT nIndex = pTheApp->SearchForFirstSelectedCell(); nIndex = max(0, nIndex); m_pView->m_ConView.ScaleAction().GetAction(0, CONVIEW_ACTIONLEVEL_CONTAINER); m_edtSensitivity.SetNumericEditBox(0, 100, 1, 0, 0); if(m_pView->m_ConView.GetCellCount()) { m_pView->m_ConView.ScaleAction().GetAction(nIndex, CONVIEW_ACTIONLEVEL_CELL); m_uCellIndex = nIndex; m_uScale = m_pView->m_ConView.ScaleAction().GetScaleFactor(); m_edtCellIndex.SetNumericEditBox(0, m_pView->m_ConView.GetCellCount() - 1, 1, 0, 0); m_edtScale.SetNumericEditBox(1, 100000, 1, 0, 0); } m_cmbCell.AddString(TEXT("None")); m_cmbCell.AddString(TEXT("All")); m_cmbCell.AddString(TEXT("Custom")); m_cmbCell.SetCurSel(0); if(!m_pView->m_ConView.GetCellCount()) { (this->GetDlgItem(IDC_ACTION_CELLINDEX_COM))->EnableWindow(FALSE); } (this->GetDlgItem(IDC_ACTION_CELLINDEX_EDT))->EnableWindow(FALSE); (this->GetDlgItem(IDC_SCALEACTION_SCALE_EDT))->EnableWindow(FALSE); pTheApp->AddSupString(&m_cmbModifier); pTheApp->AddVirtualKeyString(&m_cmbUpKey); pTheApp->AddVirtualKeyString(&m_cmbDownKey); m_pView->m_ConView.ScaleAction().GetKeyboardAction(CONVIEW_MOUSEMOVE_UP, 0); pTheApp->GetKeyboardInfo(&m_cmbUpKey, &m_cmbModifier, m_pView->m_ConView.ScaleAction().GetKey(), m_pView->m_ConView.ScaleAction().GetModifier()); m_pView->m_ConView.ScaleAction().GetKeyboardAction(CONVIEW_MOUSEMOVE_DOWN, 0); pTheApp->GetKeyboardInfo(&m_cmbDownKey, &m_cmbModifier, m_pView->m_ConView.ScaleAction().GetKey(), m_pView->m_ConView.ScaleAction().GetModifier()); m_bCircleMouse = m_pView->m_ConView.ScaleAction().GetCircularMouseMove(); m_uSensitivity = m_pView->m_ConView.ScaleAction().GetChange(); m_hIcon = pTheApp->IPictureDispTohIcon((IPictureDisp *)(m_pView->m_ConView.ScaleAction().GetCursor().m_lpDispatch)); m_ActionCursor.SetIcon( m_pView->m_ConView.ScaleAction().GetCursor() ? m_hIcon:LoadCursor(NULL, IDC_ARROW)); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CScalePropDlg::OnChangeActionCellindexEdt() { CConViewApp * pTheApp = (CConViewApp *)AfxGetApp(); UpdateData(); m_pView->m_ConView.ScaleAction().GetAction(m_uCellIndex, CONVIEW_ACTIONLEVEL_CELL); m_uScale = m_pView->m_ConView.ScaleAction().GetScaleFactor(); UpdateData(FALSE); } void CScalePropDlg::OnSelchangeActionCellindexCom() { INT nRet = m_cmbCell.GetCurSel(); GetDlgItem(IDC_ACTION_CELLINDEX_EDT)->EnableWindow(nRet == 2); GetDlgItem(IDC_SCALEACTION_SCALE_EDT)->EnableWindow(nRet != 0); }