OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [tools/] [src/] [tools/] [configtool/] [common/] [win32/] [RegionGeneralPage.cpp] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 26 unneback
//####COPYRIGHTBEGIN####
2
//                                                                          
3
// ----------------------------------------------------------------------------
4
// Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
5
//
6
// This program is part of the eCos host tools.
7
//
8
// This program is free software; you can redistribute it and/or modify it 
9
// under the terms of the GNU General Public License as published by the Free 
10
// Software Foundation; either version 2 of the License, or (at your option) 
11
// any later version.
12
// 
13
// This program is distributed in the hope that it will be useful, but WITHOUT 
14
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
15
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for 
16
// more details.
17
// 
18
// You should have received a copy of the GNU General Public License along with
19
// this program; if not, write to the Free Software Foundation, Inc., 
20
// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21
//
22
// ----------------------------------------------------------------------------
23
//                                                                          
24
//####COPYRIGHTEND####
25
//=================================================================
26
//
27
//        RegionGeneralPage.cpp
28
//
29
//        Memory Layout Tool region general property page class
30
//
31
//=================================================================
32
//#####DESCRIPTIONBEGIN####
33
//
34
// Author(s):     John Dallaway
35
// Contact(s):    jld
36
// Date:          1998/07/29 $RcsDate$ {or whatever}
37
// Version:       0.00+  $RcsVersion$ {or whatever}
38
// Purpose:       Provides a derivation of the MFC CeCosPropertyPage class for
39
//                general region property selection
40
// See also:      RegionGeneralPage.h
41
// Known bugs:    <UPDATE_ME_AT_RELEASE_TIME>
42
//
43
//####DESCRIPTIONEND####
44
 
45
#include "stdafx.h"
46
#include "RegionGeneralPage.h"
47
#include "ConfigTool.h"
48
#include "memmap.h"
49
 
50
#ifdef _DEBUG
51
#define new DEBUG_NEW
52
#undef THIS_FILE
53
static char THIS_FILE[] = __FILE__;
54
#endif
55
 
56
/////////////////////////////////////////////////////////////////////////////
57
// CRegionGeneralPage property page
58
 
59
IMPLEMENT_DYNCREATE(CRegionGeneralPage, CeCosPropertyPage)
60
 
61
CRegionGeneralPage::CRegionGeneralPage() : CeCosPropertyPage(CRegionGeneralPage::IDD)
62
{
63
        //{{AFX_DATA_INIT(CRegionGeneralPage)
64
        m_strRegionName = _T("");
65
        m_bRegionReadOnly = FALSE;
66
        m_strRegionStartAddress = _T("");
67
        m_strRegionSize = _T("");
68
        //}}AFX_DATA_INIT
69
}
70
 
71
CRegionGeneralPage::~CRegionGeneralPage()
72
{
73
}
74
 
75
void CRegionGeneralPage::DoDataExchange(CDataExchange* pDX)
76
{
77
        CeCosPropertyPage::DoDataExchange(pDX);
78
        //{{AFX_DATA_MAP(CRegionGeneralPage)
79
        DDX_Control(pDX, IDC_REGION_GENERAL_SIZE, m_edtRegionSize);
80
        DDX_Control(pDX, IDC_REGION_GENERAL_START_ADDRESS, m_edtRegionStartAddress);
81
        DDX_Control(pDX, IDC_REGION_GENERAL_NAME, m_edtRegionName);
82
        DDX_Text(pDX, IDC_REGION_GENERAL_NAME, m_strRegionName);
83
        DDX_Check(pDX, IDC_REGION_GENERAL_READ_ONLY, m_bRegionReadOnly);
84
        DDX_Text(pDX, IDC_REGION_GENERAL_START_ADDRESS, m_strRegionStartAddress);
85
        DDX_Text(pDX, IDC_REGION_GENERAL_SIZE, m_strRegionSize);
86
        //}}AFX_DATA_MAP
87
}
88
 
89
 
90
BEGIN_MESSAGE_MAP(CRegionGeneralPage, CeCosPropertyPage)
91
        //{{AFX_MSG_MAP(CRegionGeneralPage)
92
                // NOTE: the ClassWizard will add message map macros here
93
        //}}AFX_MSG_MAP
94
END_MESSAGE_MAP()
95
 
96
/////////////////////////////////////////////////////////////////////////////
97
// CRegionGeneralPage message handlers
98
 
99
BOOL CRegionGeneralPage::OnKillActive()
100
{
101
    if (! UpdateData (TRUE))
102
        return FALSE;
103
 
104
    if ((m_strRegionName == _T("")) || (m_strRegionName.FindOneOf (LD_ILLEGAL_CHARS) != -1))
105
    {
106
        AfxMessageBox (IDS_VALIDATE_REGION_NAME);
107
        m_edtRegionName.SetFocus ();
108
        return FALSE;
109
    }
110
 
111
    // convert address and size information to a DWORD representation
112
 
113
    TCHAR strDummy [2]; // holds any stray character following a hex value
114
 
115
    if (_stscanf (m_strRegionStartAddress, _T("%lx%1s"), &m_dwRegionStartAddress, strDummy) != 1)
116
    {
117
        AfxMessageBox (IDS_VALIDATE_REGION_START_ADDRESS);
118
        m_edtRegionStartAddress.SetFocus ();
119
        m_edtRegionStartAddress.SetSel (0, -1); // select all text
120
        return FALSE;
121
    }
122
 
123
    if ((_stscanf (m_strRegionSize, _T("%lx%1s"), &m_dwRegionSize, strDummy) != 1) || (m_dwRegionSize < 1))
124
    {
125
        AfxMessageBox (IDS_VALIDATE_REGION_SIZE);
126
        m_edtRegionSize.SetFocus ();
127
        m_edtRegionSize.SetSel (0, -1); // select all text
128
        return FALSE;
129
    }
130
 
131
    return CeCosPropertyPage::OnKillActive();
132
}
133
 
134
BOOL CRegionGeneralPage::OnSetActive()
135
{
136
    // generate hex strings for display
137
 
138
    if (m_dwRegionSize == 0) // a new region
139
    {
140
        m_strRegionStartAddress = _T("");
141
        m_strRegionSize = _T("");
142
    }
143
    else // modify an existing region
144
    {
145
        m_strRegionStartAddress.Format (_T("%08lX"), m_dwRegionStartAddress);
146
        m_strRegionSize.Format (_T("%lX"), m_dwRegionSize);
147
    }
148
 
149
    if (! UpdateData (FALSE))
150
        return FALSE;
151
 
152
        return CeCosPropertyPage::OnSetActive();
153
}
154
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.