~ubuntu-branches/ubuntu/raring/codeblocks/raring-proposed

« back to all changes in this revision

Viewing changes to src/plugins/codecompletion/ccdebuginfo.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Cosme Domínguez Díaz
  • Date: 2010-08-09 04:38:38 UTC
  • mfrom: (1.1.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20100809043838-a59ygguym4eg0jgw
Tags: 10.05-0ubuntu1
* New upstream release. Closes (LP: #322350)
 - Switch to dpkg-source 3.0 (quilt) format
 - Remove unneeded README.source
 - Add debian/get-source-orig script that removes all
   Windows prebuilt binaries
* Bump Standards-Version to 3.9.1
 - Stop shipping *.la files
* debian/control
 - Add cdbs package as Build-Depend
 - Add libbz2-dev and zlib1g-dev packages as
   Build-Depends (needed by libhelp_plugin.so)
 - Remove dpatch package of Build-Depends
 - Add codeblocks-contrib-debug package
 - Split architecture-independent files of codeblocks
   package in codeblocks-common package
* debian/rules
 - Switch to CDBS rules system
 - Add parallel build support
 - Add a call to debian/get-source-orig script
 - Use lzma compression (saves 23,5 MB of free space)
* debian/patches
 - Refresh 01_codeblocks_plugin_path
 - Add 02_no_Makefiles_in_debian_dir to remove any link
   in codeblocks build system to deleted Makefiles of debian directory
 - Drop 02_ftbfs_gcc44 and 03_ftbfs_glib221 (merged in upstream)
* debian/watch
 - Update to use the new host (berlios.de)

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 * This file is part of the Code::Blocks IDE and licensed under the GNU General Public License, version 3
3
3
 * http://www.gnu.org/licenses/gpl-3.0.html
4
4
 *
5
 
 * $Revision$
6
 
 * $Id$
7
 
 * $HeadURL$
 
5
 * $Revision: $
 
6
 * $Id: $
 
7
 * $HeadURL: $
8
8
 */
9
9
 
10
10
#include <sdk.h>
11
11
#include "ccdebuginfo.h"
12
12
#include "parser/parser.h"
13
 
#include <wx/utils.h>
 
13
 
 
14
#include <wx/busyinfo.h>
14
15
#include <wx/choicdlg.h> // wxGetSingleChoiceIndex
 
16
#include <wx/file.h>
 
17
#include <wx/filedlg.h>
 
18
#include <wx/utils.h>    // wxWindowDisabler
15
19
 
16
20
//(*InternalHeaders(CCDebugInfo)
17
 
#include <wx/bitmap.h>
18
 
#include <wx/font.h>
19
 
#include <wx/fontenum.h>
20
 
#include <wx/fontmap.h>
21
 
#include <wx/image.h>
22
21
#include <wx/intl.h>
23
 
#include <wx/settings.h>
24
22
#include <wx/string.h>
25
23
//*)
26
24
 
27
25
//(*IdInit(CCDebugInfo)
28
 
const long CCDebugInfo::ID_NOTEBOOK1 = wxNewId();
29
 
const long CCDebugInfo::ID_PANEL1 = wxNewId();
30
26
const long CCDebugInfo::ID_STATICTEXT29 = wxNewId();
31
27
const long CCDebugInfo::ID_TEXTCTRL1 = wxNewId();
32
28
const long CCDebugInfo::ID_BUTTON1 = wxNewId();
45
41
const long CCDebugInfo::ID_STATICTEXT6 = wxNewId();
46
42
const long CCDebugInfo::ID_STATICTEXT7 = wxNewId();
47
43
const long CCDebugInfo::ID_STATICTEXT8 = wxNewId();
 
44
const long CCDebugInfo::ID_STATICTEXT36 = wxNewId();
 
45
const long CCDebugInfo::ID_STATICTEXT37 = wxNewId();
 
46
const long CCDebugInfo::ID_STATICTEXT40 = wxNewId();
 
47
const long CCDebugInfo::ID_STATICTEXT41 = wxNewId();
48
48
const long CCDebugInfo::ID_STATICTEXT13 = wxNewId();
49
49
const long CCDebugInfo::ID_STATICTEXT14 = wxNewId();
50
50
const long CCDebugInfo::ID_STATICTEXT15 = wxNewId();
51
51
const long CCDebugInfo::ID_STATICTEXT16 = wxNewId();
52
52
const long CCDebugInfo::ID_STATICTEXT32 = wxNewId();
53
53
const long CCDebugInfo::ID_STATICTEXT33 = wxNewId();
 
54
const long CCDebugInfo::ID_STATICTEXT38 = wxNewId();
 
55
const long CCDebugInfo::ID_STATICTEXT39 = wxNewId();
54
56
const long CCDebugInfo::ID_STATICTEXT19 = wxNewId();
55
57
const long CCDebugInfo::ID_STATICTEXT20 = wxNewId();
56
58
const long CCDebugInfo::ID_STATICTEXT22 = wxNewId();
71
73
const long CCDebugInfo::ID_STATICTEXT28 = wxNewId();
72
74
const long CCDebugInfo::ID_STATICTEXT34 = wxNewId();
73
75
const long CCDebugInfo::ID_STATICTEXT35 = wxNewId();
 
76
const long CCDebugInfo::ID_PANEL1 = wxNewId();
 
77
const long CCDebugInfo::ID_LISTBOX1 = wxNewId();
74
78
const long CCDebugInfo::ID_PANEL2 = wxNewId();
75
 
const long CCDebugInfo::ID_LISTBOX1 = wxNewId();
 
79
const long CCDebugInfo::ID_LISTBOX2 = wxNewId();
76
80
const long CCDebugInfo::ID_PANEL3 = wxNewId();
77
 
const long CCDebugInfo::ID_LISTBOX2 = wxNewId();
 
81
const long CCDebugInfo::ID_NOTEBOOK1 = wxNewId();
78
82
const long CCDebugInfo::ID_STATICTEXT31 = wxNewId();
 
83
const long CCDebugInfo::ID_BUTTON6 = wxNewId();
79
84
const long CCDebugInfo::ID_STATICLINE2 = wxNewId();
80
85
//*)
81
86
 
82
 
BEGIN_EVENT_TABLE(CCDebugInfo,wxDialog)
83
 
        //(*EventTable(CCDebugInfo)
84
 
        //*)
 
87
BEGIN_EVENT_TABLE(CCDebugInfo,wxScrollingDialog)
 
88
    //(*EventTable(CCDebugInfo)
 
89
    //*)
85
90
END_EVENT_TABLE()
86
91
 
87
92
CCDebugInfo::CCDebugInfo(wxWindow* parent, Parser* parser, Token* token)
88
93
    : m_pParser(parser),
89
94
    m_pToken(token)
90
95
{
91
 
    int id = -1;
92
 
        //(*Initialize(CCDebugInfo)
93
 
        wxBoxSizer* BoxSizer1;
94
 
        wxBoxSizer* BoxSizer2;
95
 
        wxPanel* Panel3;
96
 
        
97
 
        Create(parent,id,_("Code-completion debug tool"),wxDefaultPosition,wxDefaultSize,wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL,_T("wxDialog"));
98
 
        BoxSizer1 = new wxBoxSizer(wxVERTICAL);
99
 
        Notebook1 = new wxNotebook(this,ID_NOTEBOOK1,wxDefaultPosition,wxDefaultSize,0,_T("ID_NOTEBOOK1"));
100
 
        Panel1 = new wxPanel(Notebook1,ID_PANEL1,wxDefaultPosition,wxDefaultSize,wxTAB_TRAVERSAL,_T("ID_PANEL1"));
101
 
        BoxSizer2 = new wxBoxSizer(wxVERTICAL);
102
 
        BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
103
 
        StaticText29 = new wxStaticText(Panel1,ID_STATICTEXT29,_("Find:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT29"));
104
 
        BoxSizer4->Add(StaticText29,0,wxRIGHT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,6);
105
 
        txtFilter = new wxTextCtrl(Panel1,ID_TEXTCTRL1,_("*"),wxDefaultPosition,wxSize(401,21),0,wxDefaultValidator,_T("ID_TEXTCTRL1"));
106
 
        BoxSizer4->Add(txtFilter,1,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
107
 
        btnFind = new wxButton(Panel1,ID_BUTTON1,_("Find"),wxDefaultPosition,wxDefaultSize,0,wxDefaultValidator,_T("ID_BUTTON1"));
108
 
        btnFind->SetDefault();
109
 
        BoxSizer4->Add(btnFind,0,wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,5);
110
 
        BoxSizer2->Add(BoxSizer4,0,wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
111
 
        StaticLine1 = new wxStaticLine(Panel1,ID_STATICLINE1,wxDefaultPosition,wxSize(10,-1),wxLI_HORIZONTAL,_T("ID_STATICLINE1"));
112
 
        BoxSizer2->Add(StaticLine1,0,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
113
 
        FlexGridSizer1 = new wxFlexGridSizer(0,2,5,5);
114
 
        FlexGridSizer1->AddGrowableCol(1);
115
 
        StaticText17 = new wxStaticText(Panel1,ID_STATICTEXT17,_("ID:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT17"));
116
 
        FlexGridSizer1->Add(StaticText17,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
117
 
        txtID = new wxStaticText(Panel1,ID_STATICTEXT18,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT18"));
118
 
        FlexGridSizer1->Add(txtID,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
119
 
        StaticText1 = new wxStaticText(Panel1,ID_STATICTEXT1,_("Name:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT1"));
120
 
        FlexGridSizer1->Add(StaticText1,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
121
 
        txtName = new wxStaticText(Panel1,ID_STATICTEXT2,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT2"));
122
 
        FlexGridSizer1->Add(txtName,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
123
 
        StaticText9 = new wxStaticText(Panel1,ID_STATICTEXT9,_("Kind:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT9"));
124
 
        FlexGridSizer1->Add(StaticText9,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
125
 
        txtKind = new wxStaticText(Panel1,ID_STATICTEXT10,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT10"));
126
 
        FlexGridSizer1->Add(txtKind,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
127
 
        StaticText11 = new wxStaticText(Panel1,ID_STATICTEXT11,_("Scope:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT11"));
128
 
        FlexGridSizer1->Add(StaticText11,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
129
 
        txtScope = new wxStaticText(Panel1,ID_STATICTEXT12,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT12"));
130
 
        FlexGridSizer1->Add(txtScope,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
131
 
        StaticText3 = new wxStaticText(Panel1,ID_STATICTEXT3,_("Type:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT3"));
132
 
        FlexGridSizer1->Add(StaticText3,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
133
 
        txtType = new wxStaticText(Panel1,ID_STATICTEXT4,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT4"));
134
 
        FlexGridSizer1->Add(txtType,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
135
 
        StaticText5 = new wxStaticText(Panel1,ID_STATICTEXT5,_("Actual type:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT5"));
136
 
        FlexGridSizer1->Add(StaticText5,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
137
 
        txtActualType = new wxStaticText(Panel1,ID_STATICTEXT6,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT6"));
138
 
        FlexGridSizer1->Add(txtActualType,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
139
 
        StaticText7 = new wxStaticText(Panel1,ID_STATICTEXT7,_("Arguments:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT7"));
140
 
        FlexGridSizer1->Add(StaticText7,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
141
 
        txtArgs = new wxStaticText(Panel1,ID_STATICTEXT8,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT8"));
142
 
        FlexGridSizer1->Add(txtArgs,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
143
 
        StaticText13 = new wxStaticText(Panel1,ID_STATICTEXT13,_("Is operator\?"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT13"));
144
 
        FlexGridSizer1->Add(StaticText13,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
145
 
        txtIsOp = new wxStaticText(Panel1,ID_STATICTEXT14,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT14"));
146
 
        FlexGridSizer1->Add(txtIsOp,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
147
 
        StaticText15 = new wxStaticText(Panel1,ID_STATICTEXT15,_("Is local\?"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT15"));
148
 
        FlexGridSizer1->Add(StaticText15,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
149
 
        txtIsLocal = new wxStaticText(Panel1,ID_STATICTEXT16,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT16"));
150
 
        FlexGridSizer1->Add(txtIsLocal,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
151
 
        StaticText32 = new wxStaticText(Panel1,ID_STATICTEXT32,_("Is temp\?"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT32"));
152
 
        FlexGridSizer1->Add(StaticText32,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
153
 
        txtIsTemp = new wxStaticText(Panel1,ID_STATICTEXT33,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT33"));
154
 
        FlexGridSizer1->Add(txtIsTemp,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
155
 
        StaticText19 = new wxStaticText(Panel1,ID_STATICTEXT19,_("Namespace:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT19"));
156
 
        FlexGridSizer1->Add(StaticText19,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
157
 
        txtNamespace = new wxStaticText(Panel1,ID_STATICTEXT20,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT20"));
158
 
        FlexGridSizer1->Add(txtNamespace,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
159
 
        StaticText22 = new wxStaticText(Panel1,ID_STATICTEXT22,_("Parent:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT22"));
160
 
        FlexGridSizer1->Add(StaticText22,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
161
 
        BoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
162
 
        txtParent = new wxStaticText(Panel1,ID_STATICTEXT24,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT24"));
163
 
        BoxSizer7->Add(txtParent,1,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
164
 
        btnGoParent = new wxButton(Panel1,ID_BUTTON4,_("Go"),wxDefaultPosition,wxSize(36,23),0,wxDefaultValidator,_T("ID_BUTTON4"));
165
 
        BoxSizer7->Add(btnGoParent,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
166
 
        FlexGridSizer1->Add(BoxSizer7,0,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,0);
167
 
        StaticText30 = new wxStaticText(Panel1,ID_STATICTEXT30,_("Children:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT30"));
168
 
        FlexGridSizer1->Add(StaticText30,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
169
 
        BoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
170
 
        cmbChildren = new wxComboBox(Panel1,ID_COMBOBOX3,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,0,wxCB_READONLY,wxDefaultValidator,_T("ID_COMBOBOX3"));
171
 
        BoxSizer8->Add(cmbChildren,1,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
172
 
        btnGoChildren = new wxButton(Panel1,ID_BUTTON5,_("Go"),wxDefaultPosition,wxSize(36,23),0,wxDefaultValidator,_T("ID_BUTTON5"));
173
 
        BoxSizer8->Add(btnGoChildren,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
174
 
        FlexGridSizer1->Add(BoxSizer8,0,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,0);
175
 
        StaticText21 = new wxStaticText(Panel1,ID_STATICTEXT21,_("Ancestors:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT21"));
176
 
        FlexGridSizer1->Add(StaticText21,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
177
 
        BoxSizer6 = new wxBoxSizer(wxHORIZONTAL);
178
 
        cmbAncestors = new wxComboBox(Panel1,ID_COMBOBOX2,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,0,wxCB_READONLY,wxDefaultValidator,_T("ID_COMBOBOX2"));
179
 
        BoxSizer6->Add(cmbAncestors,1,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
180
 
        btnGoAsc = new wxButton(Panel1,ID_BUTTON3,_("Go"),wxDefaultPosition,wxSize(36,23),0,wxDefaultValidator,_T("ID_BUTTON3"));
181
 
        BoxSizer6->Add(btnGoAsc,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
182
 
        FlexGridSizer1->Add(BoxSizer6,0,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,0);
183
 
        StaticText23 = new wxStaticText(Panel1,ID_STATICTEXT23,_("Descendants:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT23"));
184
 
        FlexGridSizer1->Add(StaticText23,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
185
 
        BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
186
 
        cmbDescendants = new wxComboBox(Panel1,ID_COMBOBOX1,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,0,wxCB_READONLY,wxDefaultValidator,_T("ID_COMBOBOX1"));
187
 
        BoxSizer5->Add(cmbDescendants,1,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
188
 
        btnGoDesc = new wxButton(Panel1,ID_BUTTON2,_("Go"),wxDefaultPosition,wxSize(36,23),0,wxDefaultValidator,_T("ID_BUTTON2"));
189
 
        BoxSizer5->Add(btnGoDesc,0,wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL,0);
190
 
        FlexGridSizer1->Add(BoxSizer5,0,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,0);
191
 
        StaticText25 = new wxStaticText(Panel1,ID_STATICTEXT25,_("Decl. filename:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT25"));
192
 
        FlexGridSizer1->Add(StaticText25,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
193
 
        txtDeclFile = new wxStaticText(Panel1,ID_STATICTEXT26,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT26"));
194
 
        FlexGridSizer1->Add(txtDeclFile,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
195
 
        StaticText27 = new wxStaticText(Panel1,ID_STATICTEXT27,_("Impl. filename:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT27"));
196
 
        FlexGridSizer1->Add(StaticText27,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
197
 
        txtImplFile = new wxStaticText(Panel1,ID_STATICTEXT28,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT28"));
198
 
        FlexGridSizer1->Add(txtImplFile,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
199
 
        StaticText34 = new wxStaticText(Panel1,ID_STATICTEXT34,_("User data:"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT34"));
200
 
        FlexGridSizer1->Add(StaticText34,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
201
 
        txtUserData = new wxStaticText(Panel1,ID_STATICTEXT35,wxEmptyString,wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT35"));
202
 
        FlexGridSizer1->Add(txtUserData,0,wxALL|wxALIGN_LEFT|wxALIGN_TOP,0);
203
 
        BoxSizer2->Add(FlexGridSizer1,0,wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
204
 
        Panel1->SetSizer(BoxSizer2);
205
 
        BoxSizer2->Fit(Panel1);
206
 
        BoxSizer2->SetSizeHints(Panel1);
207
 
        Panel2 = new wxPanel(Notebook1,ID_PANEL2,wxDefaultPosition,wxDefaultSize,wxTAB_TRAVERSAL,_T("ID_PANEL2"));
208
 
        BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
209
 
        lstFiles = new wxListBox(Panel2,ID_LISTBOX1,wxDefaultPosition,wxDefaultSize,0,0,0,wxDefaultValidator,_T("ID_LISTBOX1"));
210
 
        BoxSizer3->Add(lstFiles,1,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
211
 
        Panel2->SetSizer(BoxSizer3);
212
 
        BoxSizer3->Fit(Panel2);
213
 
        BoxSizer3->SetSizeHints(Panel2);
214
 
        Panel3 = new wxPanel(Notebook1,ID_PANEL3,wxDefaultPosition,wxDefaultSize,wxTAB_TRAVERSAL,_T("ID_PANEL3"));
215
 
        BoxSizer9 = new wxBoxSizer(wxHORIZONTAL);
216
 
        lstDirs = new wxListBox(Panel3,ID_LISTBOX2,wxDefaultPosition,wxDefaultSize,0,0,0,wxDefaultValidator,_T("ID_LISTBOX2"));
217
 
        BoxSizer9->Add(lstDirs,1,wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL,5);
218
 
        Panel3->SetSizer(BoxSizer9);
219
 
        BoxSizer9->Fit(Panel3);
220
 
        BoxSizer9->SetSizeHints(Panel3);
221
 
        Notebook1->AddPage(Panel1,_("Tokens"),false);
222
 
        Notebook1->AddPage(Panel2,_("Files list"),false);
223
 
        Notebook1->AddPage(Panel3,_("Search dirs"),false);
224
 
        BoxSizer1->Add(Notebook1,1,wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
225
 
        lblInfo = new wxStaticText(this,ID_STATICTEXT31,_("The parser contains 0 tokens found in 0 files"),wxDefaultPosition,wxDefaultSize,0,_T("ID_STATICTEXT31"));
226
 
        BoxSizer1->Add(lblInfo,0,wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP,5);
227
 
        StaticLine2 = new wxStaticLine(this,ID_STATICLINE2,wxDefaultPosition,wxSize(10,-1),wxLI_HORIZONTAL,_T("ID_STATICLINE2"));
228
 
        BoxSizer1->Add(StaticLine2,0,wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL,5);
229
 
        StdDialogButtonSizer1 = new wxStdDialogButtonSizer();
230
 
        StdDialogButtonSizer1->AddButton(new wxButton(this,wxID_CANCEL,_("Close")));
231
 
        StdDialogButtonSizer1->Realize();
232
 
        BoxSizer1->Add(StdDialogButtonSizer1,0,wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL,5);
233
 
        SetSizer(BoxSizer1);
234
 
        BoxSizer1->Fit(this);
235
 
        BoxSizer1->SetSizeHints(this);
236
 
        Center();
237
 
        Connect(wxID_ANY,wxEVT_INIT_DIALOG,(wxObjectEventFunction)&CCDebugInfo::OnInit);
238
 
        Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnFindClick);
239
 
        Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoParentClick);
240
 
        Connect(ID_BUTTON5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoChildrenClick);
241
 
        Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoAscClick);
242
 
        Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoDescClick);
243
 
        //*)
 
96
    //(*Initialize(CCDebugInfo)
 
97
    wxBoxSizer* BoxSizer10;
 
98
    wxBoxSizer* BoxSizer2;
 
99
    wxPanel* Panel3;
 
100
    wxBoxSizer* BoxSizer1;
 
101
 
 
102
    Create(parent, wxID_ANY, _("Code-completion debug tool"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL, _T("wxID_ANY"));
 
103
    BoxSizer1 = new wxBoxSizer(wxVERTICAL);
 
104
    Notebook1 = new wxNotebook(this, ID_NOTEBOOK1, wxDefaultPosition, wxDefaultSize, 0, _T("ID_NOTEBOOK1"));
 
105
    Panel1 = new wxPanel(Notebook1, ID_PANEL1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL1"));
 
106
    BoxSizer2 = new wxBoxSizer(wxVERTICAL);
 
107
    BoxSizer4 = new wxBoxSizer(wxHORIZONTAL);
 
108
    StaticText29 = new wxStaticText(Panel1, ID_STATICTEXT29, _("Find:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT29"));
 
109
    BoxSizer4->Add(StaticText29, 0, wxRIGHT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 6);
 
110
    txtFilter = new wxTextCtrl(Panel1, ID_TEXTCTRL1, _("*"), wxDefaultPosition, wxSize(401,21), 0, wxDefaultValidator, _T("ID_TEXTCTRL1"));
 
111
    BoxSizer4->Add(txtFilter, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
112
    btnFind = new wxButton(Panel1, ID_BUTTON1, _("Find"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON1"));
 
113
    btnFind->SetDefault();
 
114
    BoxSizer4->Add(btnFind, 0, wxLEFT|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
 
115
    BoxSizer2->Add(BoxSizer4, 0, wxTOP|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
 
116
    StaticLine1 = new wxStaticLine(Panel1, ID_STATICLINE1, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE1"));
 
117
    BoxSizer2->Add(StaticLine1, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
 
118
    FlexGridSizer1 = new wxFlexGridSizer(0, 2, 5, 5);
 
119
    FlexGridSizer1->AddGrowableCol(1);
 
120
    lblID = new wxStaticText(Panel1, ID_STATICTEXT17, _("ID:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT17"));
 
121
    FlexGridSizer1->Add(lblID, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
122
    txtID = new wxStaticText(Panel1, ID_STATICTEXT18, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT18"));
 
123
    FlexGridSizer1->Add(txtID, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
124
    lblName = new wxStaticText(Panel1, ID_STATICTEXT1, _("Name:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
 
125
    FlexGridSizer1->Add(lblName, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
126
    txtName = new wxStaticText(Panel1, ID_STATICTEXT2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
 
127
    FlexGridSizer1->Add(txtName, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
128
    lblKind = new wxStaticText(Panel1, ID_STATICTEXT9, _("Kind:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT9"));
 
129
    FlexGridSizer1->Add(lblKind, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
130
    txtKind = new wxStaticText(Panel1, ID_STATICTEXT10, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT10"));
 
131
    FlexGridSizer1->Add(txtKind, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
132
    lblScope = new wxStaticText(Panel1, ID_STATICTEXT11, _("Scope:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT11"));
 
133
    FlexGridSizer1->Add(lblScope, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
134
    txtScope = new wxStaticText(Panel1, ID_STATICTEXT12, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT12"));
 
135
    FlexGridSizer1->Add(txtScope, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
136
    lblType = new wxStaticText(Panel1, ID_STATICTEXT3, _("Type:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT3"));
 
137
    FlexGridSizer1->Add(lblType, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
138
    txtType = new wxStaticText(Panel1, ID_STATICTEXT4, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT4"));
 
139
    FlexGridSizer1->Add(txtType, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
140
    lblActualType = new wxStaticText(Panel1, ID_STATICTEXT5, _("Actual type:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT5"));
 
141
    FlexGridSizer1->Add(lblActualType, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
142
    txtActualType = new wxStaticText(Panel1, ID_STATICTEXT6, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT6"));
 
143
    FlexGridSizer1->Add(txtActualType, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
144
    lblArgs = new wxStaticText(Panel1, ID_STATICTEXT7, _("Arguments:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT7"));
 
145
    FlexGridSizer1->Add(lblArgs, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
146
    txtArgs = new wxStaticText(Panel1, ID_STATICTEXT8, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT8"));
 
147
    FlexGridSizer1->Add(txtArgs, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
148
    lblArgsStripped = new wxStaticText(Panel1, ID_STATICTEXT36, _("Arguments (str.):"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT36"));
 
149
    FlexGridSizer1->Add(lblArgsStripped, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
150
    txtArgsStripped = new wxStaticText(Panel1, ID_STATICTEXT37, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT37"));
 
151
    FlexGridSizer1->Add(txtArgsStripped, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
152
    lblTemplateArg = new wxStaticText(Panel1, ID_STATICTEXT40, _("Templ. args:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT40"));
 
153
    FlexGridSizer1->Add(lblTemplateArg, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
154
    txtTemplateArg = new wxStaticText(Panel1, ID_STATICTEXT41, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT41"));
 
155
    FlexGridSizer1->Add(txtTemplateArg, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
156
    lblIsOp = new wxStaticText(Panel1, ID_STATICTEXT13, _("Is operator\?"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT13"));
 
157
    FlexGridSizer1->Add(lblIsOp, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
158
    txtIsOp = new wxStaticText(Panel1, ID_STATICTEXT14, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT14"));
 
159
    FlexGridSizer1->Add(txtIsOp, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
160
    lblIsLocal = new wxStaticText(Panel1, ID_STATICTEXT15, _("Is local\?"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT15"));
 
161
    FlexGridSizer1->Add(lblIsLocal, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
162
    txtIsLocal = new wxStaticText(Panel1, ID_STATICTEXT16, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT16"));
 
163
    FlexGridSizer1->Add(txtIsLocal, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
164
    lblIsTemp = new wxStaticText(Panel1, ID_STATICTEXT32, _("Is temp\?"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT32"));
 
165
    FlexGridSizer1->Add(lblIsTemp, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
166
    txtIsTemp = new wxStaticText(Panel1, ID_STATICTEXT33, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT33"));
 
167
    FlexGridSizer1->Add(txtIsTemp, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
168
    lblIsConst = new wxStaticText(Panel1, ID_STATICTEXT38, _("Is const\?"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT38"));
 
169
    FlexGridSizer1->Add(lblIsConst, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
170
    txtIsConst = new wxStaticText(Panel1, ID_STATICTEXT39, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT39"));
 
171
    FlexGridSizer1->Add(txtIsConst, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
172
    lblNameSpace = new wxStaticText(Panel1, ID_STATICTEXT19, _("Namespace:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT19"));
 
173
    FlexGridSizer1->Add(lblNameSpace, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
174
    txtNamespace = new wxStaticText(Panel1, ID_STATICTEXT20, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT20"));
 
175
    FlexGridSizer1->Add(txtNamespace, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
176
    lblParent = new wxStaticText(Panel1, ID_STATICTEXT22, _("Parent:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT22"));
 
177
    FlexGridSizer1->Add(lblParent, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
178
    BoxSizer7 = new wxBoxSizer(wxHORIZONTAL);
 
179
    txtParent = new wxStaticText(Panel1, ID_STATICTEXT24, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT24"));
 
180
    BoxSizer7->Add(txtParent, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
181
    btnGoParent = new wxButton(Panel1, ID_BUTTON4, _("Go"), wxDefaultPosition, wxSize(36,23), 0, wxDefaultValidator, _T("ID_BUTTON4"));
 
182
    BoxSizer7->Add(btnGoParent, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
183
    FlexGridSizer1->Add(BoxSizer7, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
184
    lblChildren = new wxStaticText(Panel1, ID_STATICTEXT30, _("Children:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT30"));
 
185
    FlexGridSizer1->Add(lblChildren, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
186
    BoxSizer8 = new wxBoxSizer(wxHORIZONTAL);
 
187
    cmbChildren = new wxComboBox(Panel1, ID_COMBOBOX3, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, wxCB_READONLY, wxDefaultValidator, _T("ID_COMBOBOX3"));
 
188
    BoxSizer8->Add(cmbChildren, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
189
    btnGoChildren = new wxButton(Panel1, ID_BUTTON5, _("Go"), wxDefaultPosition, wxSize(36,23), 0, wxDefaultValidator, _T("ID_BUTTON5"));
 
190
    BoxSizer8->Add(btnGoChildren, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
191
    FlexGridSizer1->Add(BoxSizer8, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
192
    lblAncestors = new wxStaticText(Panel1, ID_STATICTEXT21, _("Ancestors:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT21"));
 
193
    FlexGridSizer1->Add(lblAncestors, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
194
    BoxSizer6 = new wxBoxSizer(wxHORIZONTAL);
 
195
    cmbAncestors = new wxComboBox(Panel1, ID_COMBOBOX2, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, wxCB_READONLY, wxDefaultValidator, _T("ID_COMBOBOX2"));
 
196
    BoxSizer6->Add(cmbAncestors, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
197
    btnGoAsc = new wxButton(Panel1, ID_BUTTON3, _("Go"), wxDefaultPosition, wxSize(36,23), 0, wxDefaultValidator, _T("ID_BUTTON3"));
 
198
    BoxSizer6->Add(btnGoAsc, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
199
    FlexGridSizer1->Add(BoxSizer6, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
200
    lblDescendants = new wxStaticText(Panel1, ID_STATICTEXT23, _("Descendants:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT23"));
 
201
    FlexGridSizer1->Add(lblDescendants, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
202
    BoxSizer5 = new wxBoxSizer(wxHORIZONTAL);
 
203
    cmbDescendants = new wxComboBox(Panel1, ID_COMBOBOX1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, 0, wxCB_READONLY, wxDefaultValidator, _T("ID_COMBOBOX1"));
 
204
    BoxSizer5->Add(cmbDescendants, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
205
    btnGoDesc = new wxButton(Panel1, ID_BUTTON2, _("Go"), wxDefaultPosition, wxSize(36,23), 0, wxDefaultValidator, _T("ID_BUTTON2"));
 
206
    BoxSizer5->Add(btnGoDesc, 0, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 0);
 
207
    FlexGridSizer1->Add(BoxSizer5, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
208
    lblDeclFile = new wxStaticText(Panel1, ID_STATICTEXT25, _("Decl. filename:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT25"));
 
209
    FlexGridSizer1->Add(lblDeclFile, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
210
    txtDeclFile = new wxStaticText(Panel1, ID_STATICTEXT26, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT26"));
 
211
    FlexGridSizer1->Add(txtDeclFile, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
212
    lblImplfile = new wxStaticText(Panel1, ID_STATICTEXT27, _("Impl. filename:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT27"));
 
213
    FlexGridSizer1->Add(lblImplfile, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
214
    txtImplFile = new wxStaticText(Panel1, ID_STATICTEXT28, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT28"));
 
215
    FlexGridSizer1->Add(txtImplFile, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
216
    lblUserData = new wxStaticText(Panel1, ID_STATICTEXT34, _("User data:"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT34"));
 
217
    FlexGridSizer1->Add(lblUserData, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
218
    txtUserData = new wxStaticText(Panel1, ID_STATICTEXT35, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT35"));
 
219
    FlexGridSizer1->Add(txtUserData, 0, wxALL|wxALIGN_LEFT|wxALIGN_TOP, 0);
 
220
    BoxSizer2->Add(FlexGridSizer1, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
 
221
    Panel1->SetSizer(BoxSizer2);
 
222
    BoxSizer2->Fit(Panel1);
 
223
    BoxSizer2->SetSizeHints(Panel1);
 
224
    Panel2 = new wxPanel(Notebook1, ID_PANEL2, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL2"));
 
225
    BoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
 
226
    lstFiles = new wxListBox(Panel2, ID_LISTBOX1, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_LISTBOX1"));
 
227
    BoxSizer3->Add(lstFiles, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
 
228
    Panel2->SetSizer(BoxSizer3);
 
229
    BoxSizer3->Fit(Panel2);
 
230
    BoxSizer3->SetSizeHints(Panel2);
 
231
    Panel3 = new wxPanel(Notebook1, ID_PANEL3, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PANEL3"));
 
232
    BoxSizer9 = new wxBoxSizer(wxHORIZONTAL);
 
233
    lstDirs = new wxListBox(Panel3, ID_LISTBOX2, wxDefaultPosition, wxDefaultSize, 0, 0, 0, wxDefaultValidator, _T("ID_LISTBOX2"));
 
234
    BoxSizer9->Add(lstDirs, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
 
235
    Panel3->SetSizer(BoxSizer9);
 
236
    BoxSizer9->Fit(Panel3);
 
237
    BoxSizer9->SetSizeHints(Panel3);
 
238
    Notebook1->AddPage(Panel1, _("Tokens"), false);
 
239
    Notebook1->AddPage(Panel2, _("Files list"), false);
 
240
    Notebook1->AddPage(Panel3, _("Search dirs"), false);
 
241
    BoxSizer1->Add(Notebook1, 1, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_TOP, 5);
 
242
    BoxSizer10 = new wxBoxSizer(wxHORIZONTAL);
 
243
    lblInfo = new wxStaticText(this, ID_STATICTEXT31, _("The parser contains 0 tokens found in 0 files"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT31"));
 
244
    BoxSizer10->Add(lblInfo, 1, wxALL|wxALIGN_LEFT|wxALIGN_CENTER_VERTICAL, 5);
 
245
    btnSave = new wxButton(this, ID_BUTTON6, _("Save"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_BUTTON6"));
 
246
    BoxSizer10->Add(btnSave, 0, wxALL|wxALIGN_LEFT|wxALIGN_BOTTOM, 5);
 
247
    BoxSizer1->Add(BoxSizer10, 0, wxALL|wxEXPAND|wxALIGN_LEFT|wxALIGN_BOTTOM, 5);
 
248
    StaticLine2 = new wxStaticLine(this, ID_STATICLINE2, wxDefaultPosition, wxSize(10,-1), wxLI_HORIZONTAL, _T("ID_STATICLINE2"));
 
249
    BoxSizer1->Add(StaticLine2, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
 
250
    StdDialogButtonSizer1 = new wxStdDialogButtonSizer();
 
251
    StdDialogButtonSizer1->AddButton(new wxButton(this, wxID_CANCEL, _("Close")));
 
252
    StdDialogButtonSizer1->Realize();
 
253
    BoxSizer1->Add(StdDialogButtonSizer1, 0, wxBOTTOM|wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
 
254
    SetSizer(BoxSizer1);
 
255
    BoxSizer1->Fit(this);
 
256
    BoxSizer1->SetSizeHints(this);
 
257
    Center();
 
258
 
 
259
    Connect(ID_BUTTON1,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnFindClick);
 
260
    Connect(ID_BUTTON4,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoParentClick);
 
261
    Connect(ID_BUTTON5,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoChildrenClick);
 
262
    Connect(ID_BUTTON3,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoAscClick);
 
263
    Connect(ID_BUTTON2,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnGoDescClick);
 
264
    Connect(ID_BUTTON6,wxEVT_COMMAND_BUTTON_CLICKED,(wxObjectEventFunction)&CCDebugInfo::OnSave);
 
265
    Connect(wxID_ANY,wxEVT_INIT_DIALOG,(wxObjectEventFunction)&CCDebugInfo::OnInit);
 
266
    //*)
244
267
}
245
268
 
246
269
CCDebugInfo::~CCDebugInfo()
247
270
{
248
271
    //(*Destroy(CCDebugInfo)
249
 
        //*)
 
272
    //*)
250
273
}
251
274
 
252
275
 
293
316
        txtType->SetLabel(wxEmptyString);
294
317
        txtActualType->SetLabel(wxEmptyString);
295
318
        txtArgs->SetLabel(wxEmptyString);
 
319
        txtArgsStripped->SetLabel(wxEmptyString);
 
320
        txtTemplateArg->SetLabel(wxEmptyString);
296
321
        txtIsOp->SetLabel(wxEmptyString);
297
322
        txtIsLocal->SetLabel(wxEmptyString);
298
323
        txtNamespace->SetLabel(wxEmptyString);
309
334
    Token* parent = tokens->at(m_pToken->m_ParentIndex);
310
335
 
311
336
    wxString args = m_pToken->m_Args;
 
337
    wxString argsStr = m_pToken->m_StrippedArgs;
 
338
    wxString tmplArg = m_pToken->m_TemplateArgument;
312
339
    wxString ttype = m_pToken->m_Type;
313
340
 
314
341
    // so they can be displayed in wxStaticText
315
342
    args.Replace(_T("&"), _T("&&"), true);
 
343
    argsStr.Replace(_T("&"), _T("&&"), true);
 
344
    tmplArg.Replace(_T("&"), _T("&&"), true);
316
345
    ttype.Replace(_T("&"), _T("&&"), true);
317
346
 
318
347
    txtID->SetLabel(wxString::Format(_T("%d"), m_pToken->GetSelf()));
322
351
    txtType->SetLabel(ttype);
323
352
    txtActualType->SetLabel(m_pToken->m_ActualType);
324
353
    txtArgs->SetLabel(args);
325
 
    txtIsOp->SetLabel(m_pToken->m_IsOperator ? _T("Yes") : _T("No"));
326
 
    txtIsLocal->SetLabel(m_pToken->m_IsLocal ? _T("Yes") : _T("No"));
327
 
    txtIsTemp->SetLabel(m_pToken->m_IsTemp ? _T("Yes") : _T("No"));
 
354
    txtArgsStripped->SetLabel(argsStr);
 
355
    txtTemplateArg->SetLabel(tmplArg);
 
356
    txtIsOp->SetLabel(m_pToken->m_IsOperator ? _("Yes") : _("No"));
 
357
    txtIsLocal->SetLabel(m_pToken->m_IsLocal ? _("Yes") : _("No"));
 
358
    txtIsTemp->SetLabel(m_pToken->m_IsTemp ? _("Yes") : _("No"));
 
359
    txtIsConst->SetLabel(m_pToken->m_IsConst ? _("Yes") : _("No"));
328
360
    txtNamespace->SetLabel(m_pToken->GetNamespace());
329
 
    txtParent->SetLabel(wxString::Format(_T("%s (%d)"), parent ? parent->m_Name.c_str() : _T("<Global namespace>"), m_pToken->m_ParentIndex));
 
361
    #if wxCHECK_VERSION(2, 9, 0)
 
362
    txtParent->SetLabel(wxString::Format(_T("%s (%d)"), parent ? parent->m_Name.wx_str() : _("<Global namespace>").wx_str(), m_pToken->m_ParentIndex));
 
363
    #else
 
364
    txtParent->SetLabel(wxString::Format(_T("%s (%d)"), parent ? parent->m_Name.c_str() : _("<Global namespace>"), m_pToken->m_ParentIndex));
 
365
    #endif
330
366
    FillChildren();
331
367
    FillAncestors();
332
368
    FillDescendants();
335
371
    else
336
372
        txtDeclFile->SetLabel(wxEmptyString);
337
373
    if (!m_pToken->GetImplFilename().IsEmpty())
338
 
        txtImplFile->SetLabel(wxString::Format(_T("%s : %d (code lines: %d to %d)"), m_pToken->GetImplFilename().c_str(), m_pToken->m_ImplLine, m_pToken->m_ImplLineStart, m_pToken->m_ImplLineEnd));
 
374
        txtImplFile->SetLabel(wxString::Format(_("%s : %d (code lines: %d to %d)"), m_pToken->GetImplFilename().c_str(), m_pToken->m_ImplLine, m_pToken->m_ImplLineStart, m_pToken->m_ImplLineEnd));
339
375
    else
340
376
        txtImplFile->SetLabel(wxEmptyString);
341
377
    txtUserData->SetLabel(wxString::Format(_T("0x%p"), m_pToken->m_pUserData));
348
384
    for (TokenIdxSet::iterator it = m_pToken->m_Children.begin(); it != m_pToken->m_Children.end(); ++it)
349
385
    {
350
386
        Token* child = tokens->at(*it);
351
 
        cmbChildren->Append(wxString::Format(_T("%s (%d)"), child ? child->m_Name.c_str() : _T("<invalid token>"), *it));
 
387
        const wxString msgInvalidToken = _("<invalid token>");
 
388
        #if wxCHECK_VERSION(2, 9, 0)
 
389
        cmbChildren->Append(wxString::Format(_T("%s (%d)"), child ? child->m_Name.wx_str() : msgInvalidToken.wx_str(), *it));
 
390
        #else
 
391
        cmbChildren->Append(wxString::Format(_T("%s (%d)"), child ? child->m_Name.c_str() : msgInvalidToken.c_str(), *it));
 
392
        #endif
352
393
    }
353
394
    cmbChildren->SetSelection(0);
354
395
}
360
401
    for (TokenIdxSet::iterator it = m_pToken->m_Ancestors.begin(); it != m_pToken->m_Ancestors.end(); ++it)
361
402
    {
362
403
        Token* ancestor = tokens->at(*it);
363
 
        cmbAncestors->Append(wxString::Format(_T("%s (%d)"), ancestor ? ancestor->m_Name.c_str() : _T("<invalid token>"), *it));
 
404
        const wxString msgInvalidToken = _("<invalid token>");
 
405
        #if wxCHECK_VERSION(2, 9, 0)
 
406
        cmbAncestors->Append(wxString::Format(_T("%s (%d)"), ancestor ? ancestor->m_Name.wx_str() : msgInvalidToken.wx_str(), *it));
 
407
        #else
 
408
        cmbAncestors->Append(wxString::Format(_T("%s (%d)"), ancestor ? ancestor->m_Name.c_str() : msgInvalidToken.c_str(), *it));
 
409
        #endif
364
410
    }
365
411
    cmbAncestors->SetSelection(0);
366
412
}
372
418
    for (TokenIdxSet::iterator it = m_pToken->m_Descendants.begin(); it != m_pToken->m_Descendants.end(); ++it)
373
419
    {
374
420
        Token* descendant = tokens->at(*it);
375
 
        cmbDescendants->Append(wxString::Format(_T("%s (%d)"), descendant ? descendant->m_Name.c_str() : _T("<invalid token>"), *it));
 
421
        const wxString msgInvalidToken = _("<invalid token>");
 
422
        #if wxCHECK_VERSION(2, 9, 0)
 
423
        cmbDescendants->Append(wxString::Format(_T("%s (%d)"), descendant ? descendant->m_Name.wx_str() : msgInvalidToken.wx_str(), *it));
 
424
        #else
 
425
        cmbDescendants->Append(wxString::Format(_T("%s (%d)"), descendant ? descendant->m_Name.c_str() : msgInvalidToken.c_str(), *it));
 
426
        #endif
376
427
    }
377
428
    cmbDescendants->SetSelection(0);
378
429
}
384
435
 
385
436
    wxBusyCursor busy;
386
437
 
387
 
    lblInfo->SetLabel(wxString::Format(_T("The parser contains %d tokens, found in %d files"), m_pParser->GetTokens()->size(), m_pParser->GetFilesCount()));
 
438
    lblInfo->SetLabel(wxString::Format(_("The parser contains %d tokens, found in %d files"),
 
439
                                       m_pParser->GetTokens()->size(), m_pParser->GetFilesCount()));
388
440
    DisplayTokenInfo();
389
441
    FillFiles();
390
442
    FillDirs();
433
485
                arr.Add(token->DisplayName());
434
486
                intarr.Add(*it);
435
487
            }
436
 
            int sel = wxGetSingleChoiceIndex(_("Please make a selection:"), _("Multiple matches"), arr);
 
488
            int sel = wxGetSingleChoiceIndex(_("Please make a selection:"), _("Multiple matches"), arr, this);
437
489
            if (sel == -1)
438
490
                return;
439
491
            m_pToken = tokens->at(intarr[sel]);
487
539
{
488
540
    if (!m_pToken || m_pToken->m_ParentIndex == -1)
489
541
        return;
 
542
 
490
543
    m_pToken = m_pParser->GetTokens()->at(m_pToken->m_ParentIndex);
491
544
    DisplayTokenInfo();
492
545
}
498
551
        return;
499
552
 
500
553
    TokensTree* tokens = m_pParser->GetTokens();
 
554
    if (!tokens)
 
555
        return;
 
556
 
501
557
    int count = 0;
502
558
    for (TokenIdxSet::iterator it = m_pToken->m_Children.begin(); it != m_pToken->m_Children.end(); ++it)
503
559
    {
510
566
        ++count;
511
567
    }
512
568
}
 
569
 
 
570
void SaveCCDebugInfo(const wxString& fileDesc, const wxString& content)
 
571
{
 
572
    wxString fname;
 
573
    wxFileDialog dlg (Manager::Get()->GetAppWindow(),
 
574
                    fileDesc,
 
575
                    _T(""),
 
576
                    _T(""),
 
577
                    _T("Text files (*.txt)|*.txt|Any file (*)|*"),
 
578
                    wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
 
579
    PlaceWindow(&dlg);
 
580
    if (dlg.ShowModal() != wxID_OK)
 
581
        return;
 
582
 
 
583
    // Opening the file migth have failed, verify:
 
584
    wxFile f(dlg.GetPath(), wxFile::write);
 
585
    if (f.IsOpened())
 
586
    {
 
587
        f.Write(content); // write buffer to file
 
588
        f.Close();        // release file handle
 
589
    }
 
590
    else
 
591
        cbMessageBox(_("Cannot create file ") + fname, _("CC Debug Info"));
 
592
}
 
593
 
 
594
void CCDebugInfo::OnSave(wxCommandEvent& event)
 
595
{
 
596
    TokensTree* tokens = m_pParser->GetTokens();
 
597
    if (!tokens)
 
598
        return;
 
599
 
 
600
    wxArrayString saveWhat;
 
601
    saveWhat.Add(_("Dump the tokens tree"));
 
602
    saveWhat.Add(_("Dump the file list"));
 
603
    saveWhat.Add(_("Dump the list of include directories"));
 
604
 
 
605
    int sel = wxGetSingleChoiceIndex(_("What do you want to save?"),
 
606
                                     _("CC Debug Info"), saveWhat, this);
 
607
    switch (sel)
 
608
    {
 
609
        case -1:
 
610
            // cancelled
 
611
            return;
 
612
 
 
613
        case 0:
 
614
            {
 
615
                wxString tt;
 
616
                { // life time of wxWindowDisabler/wxBusyInfo
 
617
                    wxWindowDisabler disableAll;
 
618
                    wxBusyInfo running(_("Obtaining tokens tree... please wait (this may take several seconds)..."),
 
619
                                       Manager::Get()->GetAppWindow());
 
620
                    tt = tokens->m_Tree.dump();
 
621
                }
 
622
                SaveCCDebugInfo(_("Save tokens tree"), tt);
 
623
            }
 
624
            break;
 
625
        case 1:
 
626
            {
 
627
                wxString files;
 
628
                for (size_t i = 0; i < tokens->m_FilenamesMap.size(); ++i)
 
629
                {
 
630
                    wxString file = tokens->m_FilenamesMap.GetString(i);
 
631
                    if (!file.IsEmpty())
 
632
                        files += file + _T("\n");
 
633
                }
 
634
                SaveCCDebugInfo(_("Save file list"), files);
 
635
            }
 
636
            break;
 
637
        case 2:
 
638
            {
 
639
                wxString dirs;
 
640
                const wxArrayString& dirsArray = m_pParser->GetIncludeDirs();
 
641
                for (size_t i = 0; i < dirsArray.GetCount(); ++i)
 
642
                {
 
643
                    const wxString& dir = dirsArray[i];
 
644
                    if (!dir.IsEmpty())
 
645
                        dirs += dir + _T("\n");
 
646
                }
 
647
                SaveCCDebugInfo(_("Save list of include directories"), dirs);
 
648
            }
 
649
            break;
 
650
        default:
 
651
            cbMessageBox(_("Invalid selection."), _("CC Debug Info"));
 
652
    }
 
653
}