~ubuntu-branches/ubuntu/hardy/codeblocks/hardy-backports

« back to all changes in this revision

Viewing changes to src/plugins/debuggergdb/cpuregistersdlg.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Michael Casadevall
  • Date: 2008-07-17 04:39:23 UTC
  • Revision ID: james.westby@ubuntu.com-20080717043923-gmsy5cwkdjswghkm
Tags: upstream-8.02
ImportĀ upstreamĀ versionĀ 8.02

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
 
3
 * http://www.gnu.org/licenses/gpl-3.0.html
 
4
 *
 
5
 * $Revision: 4909 $
 
6
 * $Id: cpuregistersdlg.cpp 4909 2008-02-27 13:15:26Z mortenmacfly $
 
7
 * $HeadURL: svn://svn.berlios.de/codeblocks/tags/8.02/src/plugins/debuggergdb/cpuregistersdlg.cpp $
 
8
 */
 
9
 
 
10
#include <sdk.h>
 
11
#include "cpuregistersdlg.h"
 
12
#include "debuggergdb.h"
 
13
#include <wx/intl.h>
 
14
#include <wx/sizer.h>
 
15
#include <wx/listctrl.h>
 
16
 
 
17
BEGIN_EVENT_TABLE(CPURegistersDlg, wxPanel)
 
18
//    EVT_BUTTON(XRCID("btnRefresh"), CPURegistersDlg::OnRefresh)
 
19
END_EVENT_TABLE()
 
20
 
 
21
CPURegistersDlg::CPURegistersDlg(wxWindow* parent, DebuggerGDB* debugger)
 
22
    : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize),
 
23
    m_pDbg(debugger)
 
24
{
 
25
    //ctor
 
26
    wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
 
27
    m_pList = new wxListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_SINGLE_SEL);
 
28
    sizer->Add(m_pList, 1, wxGROW);
 
29
    SetSizer(sizer);
 
30
    Layout();
 
31
 
 
32
    wxFont font(8, wxMODERN, wxNORMAL, wxNORMAL);
 
33
    m_pList->SetFont(font);
 
34
 
 
35
    Clear();
 
36
}
 
37
 
 
38
CPURegistersDlg::~CPURegistersDlg()
 
39
{
 
40
    //dtor
 
41
}
 
42
 
 
43
void CPURegistersDlg::Clear()
 
44
{
 
45
    m_pList->ClearAll();
 
46
    m_pList->Freeze();
 
47
    m_pList->DeleteAllItems();
 
48
    m_pList->InsertColumn(0, _("Register"), wxLIST_FORMAT_LEFT);
 
49
    m_pList->InsertColumn(1, _("Hex"), wxLIST_FORMAT_RIGHT);
 
50
    m_pList->InsertColumn(2, _("Integer"), wxLIST_FORMAT_RIGHT);
 
51
    m_pList->Thaw();
 
52
}
 
53
 
 
54
int CPURegistersDlg::RegisterIndex(const wxString& reg_name)
 
55
{
 
56
    for (int i = 0; i < m_pList->GetItemCount(); ++i)
 
57
    {
 
58
        if (m_pList->GetItemText(i).CmpNoCase(reg_name) == 0)
 
59
            return i;
 
60
    }
 
61
    return -1;
 
62
}
 
63
 
 
64
void CPURegistersDlg::SetRegisterValue(const wxString& reg_name, unsigned long int value)
 
65
{
 
66
    // find existing register
 
67
    int idx = RegisterIndex(reg_name);
 
68
    if (idx == -1)
 
69
    {
 
70
        // if it doesn't exist, add it
 
71
        idx = m_pList->GetItemCount();
 
72
        m_pList->InsertItem(idx, reg_name);
 
73
    }
 
74
 
 
75
    wxString fmt;
 
76
    fmt.Printf(_T("0x%x"), (size_t)value);
 
77
    m_pList->SetItem(idx, 1, fmt);
 
78
    fmt.Printf(_T("%u"), value);
 
79
    m_pList->SetItem(idx, 2, fmt);
 
80
 
 
81
    for (int i = 0; i < 3; ++i)
 
82
    {
 
83
        m_pList->SetColumnWidth(i, wxLIST_AUTOSIZE);
 
84
    }
 
85
}