⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 propertiesdialog.cpp

📁 eCos1.31版
💻 CPP
字号:
//####COPYRIGHTBEGIN####//                                                                          // ----------------------------------------------------------------------------// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.//// This program is part of the eCos host tools.//// This program is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2 of the License, or (at your option) // any later version.// // This program is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for // more details.// // You should have received a copy of the GNU General Public License along with// this program; if not, write to the Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.//// ----------------------------------------------------------------------------//                                                                          //####COPYRIGHTEND####// ConnectionPage.cpp : implementation file//#include "stdafx.h"#include "eCosTest.h"#include "eCosTestSocket.h"#include "PropertiesDialog.h"#include "LocalPropertiesDialog.h"#include "RemotePropertiesDialog.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CPropertiesDialog property page//IMPLEMENT_DYNCREATE(CPropertiesDialog, CeCosDialog)CPropertiesDialog::CPropertiesDialog(bool bHideTarget,bool bHideRemoteControls) :     CeCosDialog(IDD_TT_PROPERTIES),    m_bConnectionModified(false),    m_bHideRemoteControls(bHideRemoteControls),    m_bHideTarget(bHideTarget){	//{{AFX_DATA_INIT(CPropertiesDialog)	//}}AFX_DATA_INIT}CPropertiesDialog::~CPropertiesDialog(){}void CPropertiesDialog::DoDataExchange(CDataExchange* pDX){	CeCosDialog::DoDataExchange(pDX);    CComboBox *pCombo=((CComboBox *)GetDlgItem(IDC_TT_PLATFORM));    if(pDX->m_bSaveAndValidate){        int i=pCombo->GetCurSel();        pCombo->GetLBText(i, m_strTarget.GetBuffer(pCombo->GetLBTextLen(i)));        m_strTarget.ReleaseBuffer();        m_bRemote=(TRUE==((CButton *)GetDlgItem(IDC_TT_RADIO_REMOTE))->GetCheck());    } else {        if(pCombo->GetCount()>0){            int nSel=0;            for(int i=0;i<pCombo->GetCount();i++){                CString str;                pCombo->GetLBText(i, str.GetBuffer(pCombo->GetLBTextLen(i)));                str.ReleaseBuffer();                if(0==str.Compare(m_strTarget)){                    nSel=i;                    break;                }            }            pCombo->SetCurSel(nSel);        }        GetDlgItem(IDC_TT_STATIC_PLATFORM)->SetWindowText(m_strTarget);        SetButtons();        ((CButton *)GetDlgItem(IDC_TT_RADIO_REMOTE))->SetCheck(m_bRemote);        ((CButton *)GetDlgItem(IDC_TT_RADIO_LOCAL))->SetCheck(!m_bRemote);    }	//{{AFX_DATA_MAP(CPropertiesDialog)	DDX_Text(pDX, IDC_TT_DOWNLOADTIMEOUT, m_nDownloadTimeout);	DDV_MinMaxUInt(pDX, m_nDownloadTimeout, 1, 3600);	DDX_Text(pDX, IDC_TT_TESTTIMEOUT, m_nTimeout);	DDV_MinMaxUInt(pDX, m_nTimeout, 1, 3600);	DDX_CBIndex(pDX, IDC_TT_DOWNLOADTIMEOUT_COMBO, m_nDownloadTimeoutType);	DDX_CBIndex(pDX, IDC_TT_TIMEOUT_COMBO, m_nTimeoutType);	//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CPropertiesDialog, CeCosDialog)	//{{AFX_MSG_MAP(CPropertiesDialog)	ON_BN_CLICKED(IDC_TT_RADIO_LOCAL, OnRadioLocal)	ON_BN_CLICKED(IDC_TT_RADIO_REMOTE, OnRadioRemote)	ON_CBN_SELCHANGE(IDC_TT_PLATFORM, OnSelchangePlatform)	ON_BN_CLICKED(IDC_TT_SETTINGS, OnSettings)	ON_CBN_SELCHANGE(IDC_TT_DOWNLOADTIMEOUT_COMBO, OnSelchangeDownloadtimeoutCombo)	ON_CBN_SELCHANGE(IDC_TT_TIMEOUT_COMBO, OnSelchangeTimeoutCombo)	//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CPropertiesDialog message handlersvoid CPropertiesDialog::OnRadioLocal() {    ((CButton *)GetDlgItem(IDC_TT_RADIO_REMOTE))->SetCheck(FALSE);	    SetButtons();}void CPropertiesDialog::OnRadioRemote() {    ((CButton *)GetDlgItem(IDC_TT_RADIO_LOCAL))->SetCheck(FALSE);	    SetButtons();}BOOL CPropertiesDialog::OnInitDialog() {    GetParent()->BringWindowToTop();    if(m_bHideRemoteControls){                m_bRemote=false;        // Hide these controls:        static const arIDs1[]={IDC_STATIC_EXECUTION, IDC_TT_RADIO_LOCAL, IDC_TT_RADIO_REMOTE};        for(int i=0;i<sizeof arIDs1/sizeof arIDs1[0];i++){            GetDlgItem(arIDs1[i])->ShowWindow(SW_HIDE);        }        // Move the bottom three buttons up        CRect rect;        GetDlgItem(IDC_STATIC_EXECUTION)->GetWindowRect(rect);        ScreenToClient(rect);        int nTop=rect.top;        static const arIDs2[]={IDC_TT_SETTINGS, IDOK, IDCANCEL};        int nDelta=0;        for(i=0;i<sizeof arIDs2/sizeof arIDs2[0];i++){            CWnd *pWnd=GetDlgItem(arIDs2[i]);            pWnd->GetWindowRect(rect);            ScreenToClient(rect);            int nHeight=rect.Height();            nDelta=rect.top-nTop;            rect.top=nTop;            rect.bottom=rect.top+nHeight;            pWnd->MoveWindow(rect);        }        GetWindowRect(rect);        rect.bottom-=nDelta;        MoveWindow(rect);    }	CeCosDialog::OnInitDialog();    CComboBox *pCombo=(CComboBox *)GetDlgItem(IDC_TT_PLATFORM);    for(unsigned int i=0;i<CeCosTest::TargetTypeMax();i++){        pCombo->AddString(CeCosTest::Image(i));    }        UpdateData(false);	((CSpinButtonCtrl *)GetDlgItem(IDC_TT_SPIN3))->SetRange(1,999);	((CSpinButtonCtrl *)GetDlgItem(IDC_TT_SPIN4))->SetRange(1,999);    if(m_bHideTarget){        GetDlgItem(IDC_TT_STATIC_PLATFORM)->ShowWindow(SW_SHOW);        GetDlgItem(IDC_TT_PLATFORM)->ShowWindow(SW_HIDE);    }    SetButtons();	return TRUE;  // return TRUE unless you set the focus to a control	              // EXCEPTION: OCX Property Pages should return FALSE}void CPropertiesDialog::OnSelchangePlatform() {    SetButtons();}void CPropertiesDialog::SetButtons(){    CString strTarget;    GetDlgItemText(IDC_TT_PLATFORM,strTarget);    bool bSim=CeCosTest::IsSim(strTarget);    static const int arIDs[]={IDC_TT_DOWNLOADTIMEOUT,IDC_TT_SPIN4,IDC_TT_DOWNLOADTIMEOUT_COMBO};	for(int i=0;i<sizeof arIDs/sizeof arIDs[0];i++){		GetDlgItem(arIDs[i]) ->EnableWindow(!bSim);	}    GetDlgItem(IDC_TT_SETTINGS)->EnableWindow(!bSim || !((CButton *)GetDlgItem(IDC_TT_RADIO_LOCAL))->GetCheck());    bool b=(TIMEOUT_SPECIFIED==((CComboBox*)GetDlgItem(IDC_TT_TIMEOUT_COMBO))->GetCurSel());    GetDlgItem(IDC_TT_TESTTIMEOUT)->EnableWindow(b);    GetDlgItem(IDC_TT_SPIN3)->EnableWindow(b);        b=(TIMEOUT_SPECIFIED==((CComboBox*)GetDlgItem(IDC_TT_DOWNLOADTIMEOUT_COMBO))->GetCurSel());    GetDlgItem(IDC_TT_DOWNLOADTIMEOUT)->EnableWindow(!bSim && b);    GetDlgItem(IDC_TT_SPIN4)->EnableWindow(!bSim && b);}void CPropertiesDialog::OnSettings() {    if(((CButton *)GetDlgItem(IDC_TT_RADIO_REMOTE))->GetCheck()){        CRemotePropertiesDialog dlg;	        dlg.m_strResourceHost=m_strResourceHost;        dlg.m_nResourcePort=m_nResourcePort;        dlg.m_strRemoteHost=m_strRemoteHost;        dlg.m_nRemotePort=m_nRemotePort;        dlg.m_bFarmed=m_bFarmed;        if(IDOK==dlg.DoModal()){            m_bConnectionModified=true;            m_strResourceHost=dlg.m_strResourceHost;            m_nResourcePort=dlg.m_nResourcePort;            m_strRemoteHost=dlg.m_strRemoteHost;            m_nRemotePort=dlg.m_nRemotePort;            m_bFarmed=dlg.m_bFarmed;        }    } else {        CLocalPropertiesDialog dlg(m_bHideRemoteControls);	        dlg.m_bSerial=m_bSerial;        dlg.m_strPort=m_strPort;        dlg.m_nBaud=m_nBaud;        dlg.m_strLocalTCPIPHost=m_strLocalTCPIPHost;        dlg.m_nLocalTCPIPPort=m_nLocalTCPIPPort;        dlg.m_nReset=m_nReset;        dlg.m_strPort=m_strPort;        if(IDOK==dlg.DoModal()){            m_bConnectionModified=true;            m_bSerial=dlg.m_bSerial;            m_strPort=dlg.m_strPort;            m_nBaud=dlg.m_nBaud;            m_strPort=dlg.m_strPort;            m_strLocalTCPIPHost=dlg.m_strLocalTCPIPHost;            m_nLocalTCPIPPort=dlg.m_nLocalTCPIPPort;            m_nReset=dlg.m_nReset;            m_strReset=dlg.m_strReset;        }    }}void CPropertiesDialog::OnCancel() {    if(!m_bConnectionModified || IDYES==MessageBox(_T("This will discard any changes that may have been made to connection settings.  Do you still wish to cancel?"),NULL,MB_YESNO|MB_DEFBUTTON2)){    	CeCosDialog::OnCancel();    }}void CPropertiesDialog::OnSelchangeDownloadtimeoutCombo() {    SetButtons();	}void CPropertiesDialog::OnSelchangeTimeoutCombo() {    SetButtons();	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -