// ActionPropDlg.cpp : implementation file // #include "stdafx.h" #include "MSVC5conview.h" #include "ActionPropDlg.h" #include "leadwindowlevelaction.h" #include "leadmagnifyglassaction.h" #include "leadscaleaction.h" #include "leadoffsetaction.h" #include "leadstackaction.h" #include "leadalphaaction.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CActionPropDlg dialog CActionPropDlg::CActionPropDlg(CWnd* pParent /*=NULL*/) : CDialog(CActionPropDlg::IDD, pParent) { //{{AFX_DATA_INIT(CActionPropDlg) //}}AFX_DATA_INIT } void CActionPropDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CActionPropDlg) DDX_Control(pDX, IDC_SETACTION_MOUSE_COM, m_cmbMouseButton); DDX_Control(pDX, IDC_SETACTION_APPLYON_COM, m_cmbApplyOn); DDX_Control(pDX, IDC_SETACTION_APPLYMETHOD_COM, m_cmbApplyMethod); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CActionPropDlg, CDialog) //{{AFX_MSG_MAP(CActionPropDlg) ON_BN_CLICKED(IDAPPLY, OnApply) ON_CBN_SELCHANGE(IDC_SETACTION_MOUSE_COM, OnSelchangeSetactionMouseCom) ON_CBN_SELCHANGE(IDC_SETACTION_APPLYON_COM, OnSelchangeSetactionApplyonCom) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CActionPropDlg message handlers void CActionPropDlg::OnApply() { switch(m_uAction) { case WINDOWLEVEL_ACTION: m_pView->m_ConView.WindowLevelAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel(), m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4)); break; case ALPHA_ACTION : m_pView->m_ConView.AlphaAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel(), m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4)); break; case OFFSET_ACTION: m_pView->m_ConView.OffsetAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel(), m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4)); break; case SCALE_ACTION: m_pView->m_ConView.ScaleAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel(), m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4)); break; case STACK_ACTION: m_pView->m_ConView.StackAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel(), m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4)); break; case MAGNIFYGLASS_ACTION: m_pView->m_ConView.MagnifyGlassAction().SetMouseButtonAction(m_cmbMouseButton.GetCurSel()); break; } UINT nMouse = m_cmbMouseButton.GetCurSel(); for(UINT i = 0; i < 7; i++) { if(i == m_uAction) continue; if (m_pView->m_CurrentActionButton[i] == nMouse) { m_pView->m_CurrentActionButton[i] = 0; m_pView->m_CurrentActionButton[i] = 0; break; } } m_pView->m_CurrentActionButton[m_uAction] = nMouse; m_pView->m_CurrentActionFlags[m_uAction] = m_cmbApplyOn.GetCurSel()|(m_cmbApplyMethod.GetCurSel() << 4); } void CActionPropDlg::OnOK() { OnApply(); CDialog::OnOK(); } BOOL CActionPropDlg::OnInitDialog() { CDialog::OnInitDialog(); this->SetWindowText(m_Text); m_cmbMouseButton.AddString(TEXT("None")); m_cmbMouseButton.AddString(TEXT("Left Button")); m_cmbMouseButton.AddString(TEXT("Right Button")); m_cmbMouseButton.AddString(TEXT("Middle Button")); if (m_uAction != MAGNIFYGLASS_ACTION) m_cmbMouseButton.AddString(TEXT("Wheel")); m_cmbMouseButton.SetCurSel(0); m_cmbApplyOn.AddString(TEXT("Active Only")); m_cmbApplyOn.AddString(TEXT("Selected Cells")); m_cmbApplyOn.AddString(TEXT("All Cells")); m_cmbApplyOn.SetCurSel(0); m_cmbApplyMethod.AddString(TEXT("Real time")); m_cmbApplyMethod.AddString(TEXT("On mouse release")); m_cmbApplyMethod.SetCurSel(0); m_cmbMouseButton.SetCurSel(m_pView->m_CurrentActionButton[m_uAction]); m_cmbApplyOn.SetCurSel(m_pView->m_CurrentActionFlags[m_uAction] & 0xf); m_cmbApplyMethod.SetCurSel((m_pView->m_CurrentActionFlags[m_uAction] & 0xf0) >> 4); INT nCount = m_pView->m_ConView.GetCellCount(); if(m_uAction == MAGNIFYGLASS_ACTION || nCount <= 1 || m_cmbMouseButton.GetCurSel() == 0) { m_cmbApplyOn.EnableWindow(FALSE); m_cmbApplyMethod.EnableWindow(FALSE); } else { m_cmbApplyOn.EnableWindow(TRUE); m_cmbApplyMethod.EnableWindow(TRUE); } if(m_cmbMouseButton.GetCurSel() == 4 || m_cmbApplyOn.GetCurSel() == 0) { m_cmbApplyMethod.EnableWindow(FALSE); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } VOID CActionPropDlg::CheckComboBoxes() { if(m_cmbMouseButton.GetCurSel() == 0 ) { m_cmbApplyMethod.EnableWindow(FALSE); m_cmbApplyOn.EnableWindow(FALSE); } else { if(m_cmbMouseButton.GetCurSel() == 4 ) { m_cmbApplyMethod.EnableWindow(FALSE); } else { m_cmbApplyMethod.EnableWindow(TRUE); } m_cmbApplyOn.EnableWindow(TRUE); } INT nCount = m_pView->m_ConView.GetCellCount(); if(m_uAction == MAGNIFYGLASS_ACTION || nCount <= 1) { m_cmbApplyOn.EnableWindow(FALSE); m_cmbApplyMethod.EnableWindow(FALSE); } if(m_cmbApplyOn.GetCurSel() == 0) { m_cmbApplyMethod.EnableWindow(FALSE); } } void CActionPropDlg::OnSelchangeSetactionMouseCom() { CheckComboBoxes(); } void CActionPropDlg::OnSelchangeSetactionApplyonCom() { CheckComboBoxes(); }