monitor ThreadSocketHandler and terminate and restart if hung, convert _beginthread...
[novacoin.git] / uibase.cpp
1 ///////////////////////////////////////////////////////////////////////////\r
2 // C++ code generated with wxFormBuilder (version Apr 16 2008)\r
3 // http://www.wxformbuilder.org/\r
4 //\r
5 // PLEASE DO "NOT" EDIT THIS FILE!\r
6 ///////////////////////////////////////////////////////////////////////////\r
7 \r
8 #include "uibase.h"\r
9 \r
10 #include "xpm/addressbook20.xpm"\r
11 #include "xpm/check.xpm"\r
12 #include "xpm/send20.xpm"\r
13 \r
14 ///////////////////////////////////////////////////////////////////////////\r
15 \r
16 CMainFrameBase::CMainFrameBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
17 {\r
18         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
19         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );\r
20         \r
21         m_menubar = new wxMenuBar( 0 );\r
22         m_menubar->SetBackgroundColour( wxColour( 240, 240, 240 ) );\r
23         \r
24         m_menuFile = new wxMenu();\r
25         wxMenuItem* m_menuFileExit;\r
26         m_menuFileExit = new wxMenuItem( m_menuFile, wxID_ANY, wxString( wxT("E&xit") ) , wxEmptyString, wxITEM_NORMAL );\r
27         m_menuFile->Append( m_menuFileExit );\r
28         \r
29         m_menubar->Append( m_menuFile, wxT("&File") );\r
30         \r
31         m_menuView = new wxMenu();\r
32         wxMenuItem* m_menuViewShowGenerated;\r
33         m_menuViewShowGenerated = new wxMenuItem( m_menuView, wxID_VIEWSHOWGENERATED, wxString( wxT("&Show Generated Coins") ) , wxEmptyString, wxITEM_CHECK );\r
34         m_menuView->Append( m_menuViewShowGenerated );\r
35         \r
36         m_menubar->Append( m_menuView, wxT("&View") );\r
37         \r
38         m_menuOptions = new wxMenu();\r
39         wxMenuItem* m_menuOptionsGenerateBitcoins;\r
40         m_menuOptionsGenerateBitcoins = new wxMenuItem( m_menuOptions, wxID_OPTIONSGENERATEBITCOINS, wxString( wxT("&Generate Coins") ) , wxEmptyString, wxITEM_CHECK );\r
41         m_menuOptions->Append( m_menuOptionsGenerateBitcoins );\r
42         \r
43         wxMenuItem* m_menuOptionsChangeYourAddress;\r
44         m_menuOptionsChangeYourAddress = new wxMenuItem( m_menuOptions, wxID_ANY, wxString( wxT("&Change Your Address...") ) , wxEmptyString, wxITEM_NORMAL );\r
45         m_menuOptions->Append( m_menuOptionsChangeYourAddress );\r
46         \r
47         wxMenuItem* m_menuOptionsOptions;\r
48         m_menuOptionsOptions = new wxMenuItem( m_menuOptions, wxID_MENUOPTIONSOPTIONS, wxString( wxT("&Options...") ) , wxEmptyString, wxITEM_NORMAL );\r
49         m_menuOptions->Append( m_menuOptionsOptions );\r
50         \r
51         m_menubar->Append( m_menuOptions, wxT("&Options") );\r
52         \r
53         m_menuHelp = new wxMenu();\r
54         wxMenuItem* m_menuHelpAbout;\r
55         m_menuHelpAbout = new wxMenuItem( m_menuHelp, wxID_ANY, wxString( wxT("&About...") ) , wxEmptyString, wxITEM_NORMAL );\r
56         m_menuHelp->Append( m_menuHelpAbout );\r
57         \r
58         m_menubar->Append( m_menuHelp, wxT("&Help") );\r
59         \r
60         this->SetMenuBar( m_menubar );\r
61         \r
62         m_toolBar = this->CreateToolBar( wxTB_FLAT|wxTB_HORZ_TEXT, wxID_ANY );\r
63         m_toolBar->SetToolBitmapSize( wxSize( 20,20 ) );\r
64         m_toolBar->SetToolSeparation( 1 );\r
65         m_toolBar->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
66         \r
67         m_toolBar->AddTool( wxID_BUTTONSEND, wxT("&Send Coins"), wxBitmap( send20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );\r
68         m_toolBar->AddTool( wxID_BUTTONRECEIVE, wxT("&Address Book"), wxBitmap( addressbook20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );\r
69         m_toolBar->Realize();\r
70         \r
71         m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );\r
72         m_statusBar->SetBackgroundColour( wxColour( 240, 240, 240 ) );\r
73         \r
74         wxBoxSizer* bSizer2;\r
75         bSizer2 = new wxBoxSizer( wxVERTICAL );\r
76         \r
77         \r
78         bSizer2->Add( 0, 2, 0, wxEXPAND, 5 );\r
79         \r
80         wxBoxSizer* bSizer85;\r
81         bSizer85 = new wxBoxSizer( wxHORIZONTAL );\r
82         \r
83         m_staticText32 = new wxStaticText( this, wxID_ANY, wxT("Your Bitcoin Address:"), wxDefaultPosition, wxDefaultSize, 0 );\r
84         m_staticText32->Wrap( -1 );\r
85         bSizer85->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );\r
86         \r
87         m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLADDRESS, wxEmptyString, wxDefaultPosition, wxSize( 340,-1 ), wxTE_READONLY );\r
88         m_textCtrlAddress->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_MENU ) );\r
89         \r
90         bSizer85->Add( m_textCtrlAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
91         \r
92         m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, wxT(" &Copy to Clipboard "), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );\r
93         bSizer85->Add( m_buttonCopy, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );\r
94         \r
95         m_button91 = new wxButton( this, wxID_BUTTONCHANGE, wxT("C&hange..."), wxDefaultPosition, wxDefaultSize, 0 );\r
96         m_button91->Hide();\r
97         \r
98         bSizer85->Add( m_button91, 0, wxRIGHT, 5 );\r
99         \r
100         \r
101         bSizer85->Add( 0, 0, 0, wxEXPAND, 5 );\r
102         \r
103         bSizer2->Add( bSizer85, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );\r
104         \r
105         wxBoxSizer* bSizer3;\r
106         bSizer3 = new wxBoxSizer( wxHORIZONTAL );\r
107         \r
108         m_panel14 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
109         wxBoxSizer* bSizer66;\r
110         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
111         \r
112         m_staticText41 = new wxStaticText( m_panel14, wxID_ANY, wxT("Balance:"), wxDefaultPosition, wxSize( -1,15 ), 0 );\r
113         m_staticText41->Wrap( -1 );\r
114         bSizer66->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
115         \r
116         m_staticTextBalance = new wxStaticText( m_panel14, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 120,15 ), wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
117         m_staticTextBalance->Wrap( -1 );\r
118         m_staticTextBalance->SetFont( wxFont( 8, 70, 90, 90, false, wxEmptyString ) );\r
119         m_staticTextBalance->SetBackgroundColour( wxColour( 255, 255, 255 ) );\r
120         \r
121         bSizer66->Add( m_staticTextBalance, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
122         \r
123         m_panel14->SetSizer( bSizer66 );\r
124         m_panel14->Layout();\r
125         bSizer66->Fit( m_panel14 );\r
126         bSizer3->Add( m_panel14, 1, wxEXPAND|wxALIGN_BOTTOM|wxALL, 5 );\r
127         \r
128         \r
129         bSizer3->Add( 0, 0, 0, wxEXPAND, 5 );\r
130         \r
131         wxString m_choiceFilterChoices[] = { wxT(" All"), wxT(" Sent"), wxT(" Received"), wxT(" In Progress") };\r
132         int m_choiceFilterNChoices = sizeof( m_choiceFilterChoices ) / sizeof( wxString );\r
133         m_choiceFilter = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), m_choiceFilterNChoices, m_choiceFilterChoices, 0 );\r
134         m_choiceFilter->SetSelection( 0 );\r
135         m_choiceFilter->Hide();\r
136         \r
137         bSizer3->Add( m_choiceFilter, 0, wxALIGN_BOTTOM|wxTOP|wxRIGHT|wxLEFT, 5 );\r
138         \r
139         bSizer2->Add( bSizer3, 0, wxEXPAND, 5 );\r
140         \r
141         m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
142         m_panel7 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
143         wxBoxSizer* bSizer157;\r
144         bSizer157 = new wxBoxSizer( wxVERTICAL );\r
145         \r
146         m_listCtrl = new wxListCtrl( m_panel7, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING|wxVSCROLL );\r
147         bSizer157->Add( m_listCtrl, 1, wxEXPAND|wxALL, 5 );\r
148         \r
149         m_panel7->SetSizer( bSizer157 );\r
150         m_panel7->Layout();\r
151         bSizer157->Fit( m_panel7 );\r
152         m_notebook->AddPage( m_panel7, wxT("All Transactions"), false );\r
153         \r
154         bSizer2->Add( m_notebook, 1, wxEXPAND, 5 );\r
155         \r
156         wxBoxSizer* bSizer_TabsForFutureUse;\r
157         bSizer_TabsForFutureUse = new wxBoxSizer( wxVERTICAL );\r
158         \r
159         m_panel9 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
160         m_panel9->Hide();\r
161         \r
162         wxBoxSizer* bSizer159;\r
163         bSizer159 = new wxBoxSizer( wxVERTICAL );\r
164         \r
165         m_listCtrlEscrows = new wxListCtrl( m_panel9, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT );\r
166         bSizer159->Add( m_listCtrlEscrows, 1, wxALL|wxEXPAND, 5 );\r
167         \r
168         m_panel9->SetSizer( bSizer159 );\r
169         m_panel9->Layout();\r
170         bSizer159->Fit( m_panel9 );\r
171         bSizer_TabsForFutureUse->Add( m_panel9, 1, wxEXPAND | wxALL, 5 );\r
172         \r
173         m_panel8 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
174         m_panel8->Hide();\r
175         \r
176         wxBoxSizer* bSizer158;\r
177         bSizer158 = new wxBoxSizer( wxVERTICAL );\r
178         \r
179         m_listCtrlOrdersSent = new wxListCtrl( m_panel8, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT );\r
180         bSizer158->Add( m_listCtrlOrdersSent, 1, wxALL|wxEXPAND, 5 );\r
181         \r
182         m_panel8->SetSizer( bSizer158 );\r
183         m_panel8->Layout();\r
184         bSizer158->Fit( m_panel8 );\r
185         bSizer_TabsForFutureUse->Add( m_panel8, 1, wxEXPAND | wxALL, 5 );\r
186         \r
187         m_panel10 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
188         m_panel10->Hide();\r
189         \r
190         wxBoxSizer* bSizer160;\r
191         bSizer160 = new wxBoxSizer( wxVERTICAL );\r
192         \r
193         m_listCtrlProductsSent = new wxListCtrl( m_panel10, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT );\r
194         bSizer160->Add( m_listCtrlProductsSent, 1, wxALL|wxEXPAND, 5 );\r
195         \r
196         m_panel10->SetSizer( bSizer160 );\r
197         m_panel10->Layout();\r
198         bSizer160->Fit( m_panel10 );\r
199         bSizer_TabsForFutureUse->Add( m_panel10, 1, wxEXPAND | wxALL, 5 );\r
200         \r
201         m_panel11 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
202         m_panel11->Hide();\r
203         \r
204         wxBoxSizer* bSizer161;\r
205         bSizer161 = new wxBoxSizer( wxVERTICAL );\r
206         \r
207         m_listCtrlOrdersReceived = new wxListCtrl( m_panel11, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT );\r
208         bSizer161->Add( m_listCtrlOrdersReceived, 1, wxALL|wxEXPAND, 5 );\r
209         \r
210         m_panel11->SetSizer( bSizer161 );\r
211         m_panel11->Layout();\r
212         bSizer161->Fit( m_panel11 );\r
213         bSizer_TabsForFutureUse->Add( m_panel11, 1, wxEXPAND | wxALL, 5 );\r
214         \r
215         bSizer2->Add( bSizer_TabsForFutureUse, 1, wxEXPAND, 5 );\r
216         \r
217         this->SetSizer( bSizer2 );\r
218         this->Layout();\r
219         \r
220         // Connect Events\r
221         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );\r
222         this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );\r
223         this->Connect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );\r
224         this->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
225         this->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
226         this->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
227         this->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
228         this->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
229         this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
230         this->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
231         this->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
232         this->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
233         this->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
234         this->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
235         this->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
236         this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
237         this->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );\r
238         this->Connect( m_menuFileExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );\r
239         this->Connect( m_menuViewShowGenerated->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuViewShowGenerated ) );\r
240         this->Connect( m_menuViewShowGenerated->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIViewShowGenerated ) );\r
241         this->Connect( m_menuOptionsGenerateBitcoins->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsGenerate ) );\r
242         this->Connect( m_menuOptionsGenerateBitcoins->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIOptionsGenerate ) );\r
243         this->Connect( m_menuOptionsChangeYourAddress->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );\r
244         this->Connect( m_menuOptionsOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );\r
245         this->Connect( m_menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );\r
246         this->Connect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );\r
247         this->Connect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );\r
248         m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );\r
249         m_textCtrlAddress->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
250         m_textCtrlAddress->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
251         m_textCtrlAddress->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
252         m_textCtrlAddress->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
253         m_textCtrlAddress->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
254         m_textCtrlAddress->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
255         m_textCtrlAddress->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
256         m_textCtrlAddress->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
257         m_textCtrlAddress->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
258         m_textCtrlAddress->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
259         m_textCtrlAddress->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
260         m_textCtrlAddress->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
261         m_textCtrlAddress->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
262         m_textCtrlAddress->Connect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );\r
263         m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );\r
264         m_button91->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonChange ), NULL, this );\r
265         m_listCtrl->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
266         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedAllTransactions ), NULL, this );\r
267         m_listCtrl->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
268         m_listCtrlOrdersSent->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedOrdersSent ), NULL, this );\r
269         m_listCtrlProductsSent->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedProductsSent ), NULL, this );\r
270         m_listCtrlOrdersReceived->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedOrdersReceived ), NULL, this );\r
271 }\r
272 \r
273 CMainFrameBase::~CMainFrameBase()\r
274 {\r
275         // Disconnect Events\r
276         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );\r
277         this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );\r
278         this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );\r
279         this->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
280         this->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
281         this->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
282         this->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
283         this->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
284         this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
285         this->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
286         this->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
287         this->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
288         this->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
289         this->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
290         this->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
291         this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
292         this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );\r
293         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );\r
294         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuViewShowGenerated ) );\r
295         this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIViewShowGenerated ) );\r
296         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsGenerate ) );\r
297         this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIOptionsGenerate ) );\r
298         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );\r
299         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );\r
300         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );\r
301         this->Disconnect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );\r
302         this->Disconnect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );\r
303         m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );\r
304         m_textCtrlAddress->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
305         m_textCtrlAddress->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
306         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
307         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
308         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
309         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
310         m_textCtrlAddress->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
311         m_textCtrlAddress->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
312         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
313         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
314         m_textCtrlAddress->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
315         m_textCtrlAddress->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
316         m_textCtrlAddress->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
317         m_textCtrlAddress->Disconnect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );\r
318         m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );\r
319         m_button91->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonChange ), NULL, this );\r
320         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
321         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedAllTransactions ), NULL, this );\r
322         m_listCtrl->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
323         m_listCtrlOrdersSent->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedOrdersSent ), NULL, this );\r
324         m_listCtrlProductsSent->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedProductsSent ), NULL, this );\r
325         m_listCtrlOrdersReceived->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivatedOrdersReceived ), NULL, this );\r
326 }\r
327 \r
328 CTxDetailsDialogBase::CTxDetailsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
329 {\r
330         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
331         \r
332         wxBoxSizer* bSizer64;\r
333         bSizer64 = new wxBoxSizer( wxVERTICAL );\r
334         \r
335         wxBoxSizer* bSizer66;\r
336         bSizer66 = new wxBoxSizer( wxVERTICAL );\r
337         \r
338         m_htmlWin = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );\r
339         bSizer66->Add( m_htmlWin, 1, wxALL|wxEXPAND, 5 );\r
340         \r
341         bSizer64->Add( bSizer66, 1, wxEXPAND, 5 );\r
342         \r
343         wxBoxSizer* bSizer65;\r
344         bSizer65 = new wxBoxSizer( wxHORIZONTAL );\r
345         \r
346         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
347         bSizer65->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
348         \r
349         bSizer64->Add( bSizer65, 0, wxALIGN_RIGHT, 5 );\r
350         \r
351         this->SetSizer( bSizer64 );\r
352         this->Layout();\r
353         \r
354         // Connect Events\r
355         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );\r
356 }\r
357 \r
358 CTxDetailsDialogBase::~CTxDetailsDialogBase()\r
359 {\r
360         // Disconnect Events\r
361         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );\r
362 }\r
363 \r
364 COptionsDialogBase::COptionsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
365 {\r
366         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
367         \r
368         wxBoxSizer* bSizer55;\r
369         bSizer55 = new wxBoxSizer( wxVERTICAL );\r
370         \r
371         wxBoxSizer* bSizer66;\r
372         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
373         \r
374         m_listBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE ); \r
375         bSizer66->Add( m_listBox, 0, wxEXPAND|wxRIGHT, 5 );\r
376         \r
377         m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
378         m_scrolledWindow->SetScrollRate( 5, 5 );\r
379         wxBoxSizer* bSizer63;\r
380         bSizer63 = new wxBoxSizer( wxVERTICAL );\r
381         \r
382         m_panelMain = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
383         wxBoxSizer* bSizer69;\r
384         bSizer69 = new wxBoxSizer( wxVERTICAL );\r
385         \r
386         \r
387         bSizer69->Add( 0, 16, 0, wxEXPAND, 5 );\r
388         \r
389         m_staticText32 = new wxStaticText( m_panelMain, wxID_ANY, wxT("Optional transaction fee you give to the nodes that process your transactions."), wxDefaultPosition, wxDefaultSize, 0 );\r
390         m_staticText32->Wrap( -1 );\r
391         m_staticText32->Hide();\r
392         \r
393         bSizer69->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
394         \r
395         wxBoxSizer* bSizer56;\r
396         bSizer56 = new wxBoxSizer( wxHORIZONTAL );\r
397         \r
398         m_staticText31 = new wxStaticText( m_panelMain, wxID_ANY, wxT("Transaction fee:"), wxDefaultPosition, wxDefaultSize, 0 );\r
399         m_staticText31->Wrap( -1 );\r
400         m_staticText31->Hide();\r
401         \r
402         bSizer56->Add( m_staticText31, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
403         \r
404         m_textCtrlTransactionFee = new wxTextCtrl( m_panelMain, wxID_TRANSACTIONFEE, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), 0 );\r
405         m_textCtrlTransactionFee->Hide();\r
406         \r
407         bSizer56->Add( m_textCtrlTransactionFee, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
408         \r
409         bSizer69->Add( bSizer56, 0, wxEXPAND, 5 );\r
410         \r
411         wxBoxSizer* bSizer71;\r
412         bSizer71 = new wxBoxSizer( wxHORIZONTAL );\r
413         \r
414         m_checkBoxLimitProcessors = new wxCheckBox( m_panelMain, wxID_ANY, wxT("&Limit coin generation to"), wxDefaultPosition, wxDefaultSize, 0 );\r
415         \r
416         bSizer71->Add( m_checkBoxLimitProcessors, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
417         \r
418         m_spinCtrlLimitProcessors = new wxSpinCtrl( m_panelMain, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 48,-1 ), wxSP_ARROW_KEYS, 1, 999, 1 );\r
419         bSizer71->Add( m_spinCtrlLimitProcessors, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
420         \r
421         m_staticText35 = new wxStaticText( m_panelMain, wxID_ANY, wxT("processors"), wxDefaultPosition, wxDefaultSize, 0 );\r
422         m_staticText35->Wrap( -1 );\r
423         bSizer71->Add( m_staticText35, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
424         \r
425         bSizer69->Add( bSizer71, 0, 0, 5 );\r
426         \r
427         m_checkBoxStartOnSystemStartup = new wxCheckBox( m_panelMain, wxID_ANY, wxT("&Start Bitcoin on system startup"), wxDefaultPosition, wxDefaultSize, 0 );\r
428         \r
429         bSizer69->Add( m_checkBoxStartOnSystemStartup, 0, wxALL, 5 );\r
430         \r
431         m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, wxT("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );\r
432         \r
433         bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );\r
434         \r
435         m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, wxT("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );\r
436         \r
437         bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
438         \r
439         wxBoxSizer* bSizer102;\r
440         bSizer102 = new wxBoxSizer( wxHORIZONTAL );\r
441         \r
442         m_checkBoxUseProxy = new wxCheckBox( m_panelMain, wxID_ANY, wxT("&Connect through socks4 proxy: "), wxDefaultPosition, wxDefaultSize, 0 );\r
443         \r
444         bSizer102->Add( m_checkBoxUseProxy, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
445         \r
446         bSizer69->Add( bSizer102, 1, wxEXPAND, 5 );\r
447         \r
448         wxBoxSizer* bSizer103;\r
449         bSizer103 = new wxBoxSizer( wxHORIZONTAL );\r
450         \r
451         \r
452         bSizer103->Add( 18, 0, 0, 0, 5 );\r
453         \r
454         m_staticTextProxyIP = new wxStaticText( m_panelMain, wxID_ANY, wxT("Proxy &IP:"), wxDefaultPosition, wxDefaultSize, 0 );\r
455         m_staticTextProxyIP->Wrap( -1 );\r
456         bSizer103->Add( m_staticTextProxyIP, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
457         \r
458         m_textCtrlProxyIP = new wxTextCtrl( m_panelMain, wxID_PROXYIP, wxEmptyString, wxDefaultPosition, wxSize( 140,-1 ), 0 );\r
459         m_textCtrlProxyIP->SetMaxLength( 15 ); \r
460         bSizer103->Add( m_textCtrlProxyIP, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
461         \r
462         m_staticTextProxyPort = new wxStaticText( m_panelMain, wxID_ANY, wxT(" &Port:"), wxDefaultPosition, wxDefaultSize, 0 );\r
463         m_staticTextProxyPort->Wrap( -1 );\r
464         bSizer103->Add( m_staticTextProxyPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
465         \r
466         m_textCtrlProxyPort = new wxTextCtrl( m_panelMain, wxID_PROXYPORT, wxEmptyString, wxDefaultPosition, wxSize( 55,-1 ), 0 );\r
467         m_textCtrlProxyPort->SetMaxLength( 5 ); \r
468         bSizer103->Add( m_textCtrlProxyPort, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
469         \r
470         bSizer69->Add( bSizer103, 1, wxEXPAND, 5 );\r
471         \r
472         m_panelMain->SetSizer( bSizer69 );\r
473         m_panelMain->Layout();\r
474         bSizer69->Fit( m_panelMain );\r
475         bSizer63->Add( m_panelMain, 0, wxEXPAND, 5 );\r
476         \r
477         m_panelTest2 = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
478         wxBoxSizer* bSizer64;\r
479         bSizer64 = new wxBoxSizer( wxVERTICAL );\r
480         \r
481         \r
482         bSizer64->Add( 0, 16, 0, wxEXPAND, 5 );\r
483         \r
484         m_staticText321 = new wxStaticText( m_panelTest2, wxID_ANY, wxT("Test panel 2 for future expansion"), wxDefaultPosition, wxDefaultSize, 0 );\r
485         m_staticText321->Wrap( -1 );\r
486         bSizer64->Add( m_staticText321, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
487         \r
488         m_staticText69 = new wxStaticText( m_panelTest2, wxID_ANY, wxT("Let's not start multiple pages until the first page is filled up"), wxDefaultPosition, wxDefaultSize, 0 );\r
489         m_staticText69->Wrap( -1 );\r
490         bSizer64->Add( m_staticText69, 0, wxALL, 5 );\r
491         \r
492         m_staticText70 = new wxStaticText( m_panelTest2, wxID_ANY, wxT("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
493         m_staticText70->Wrap( -1 );\r
494         bSizer64->Add( m_staticText70, 0, wxALL, 5 );\r
495         \r
496         m_staticText71 = new wxStaticText( m_panelTest2, wxID_ANY, wxT("MyLabel"), wxDefaultPosition, wxDefaultSize, 0 );\r
497         m_staticText71->Wrap( -1 );\r
498         bSizer64->Add( m_staticText71, 0, wxALL, 5 );\r
499         \r
500         m_panelTest2->SetSizer( bSizer64 );\r
501         m_panelTest2->Layout();\r
502         bSizer64->Fit( m_panelTest2 );\r
503         bSizer63->Add( m_panelTest2, 0, wxEXPAND, 5 );\r
504         \r
505         m_scrolledWindow->SetSizer( bSizer63 );\r
506         m_scrolledWindow->Layout();\r
507         bSizer63->Fit( m_scrolledWindow );\r
508         bSizer66->Add( m_scrolledWindow, 1, wxEXPAND|wxLEFT, 5 );\r
509         \r
510         bSizer55->Add( bSizer66, 1, wxEXPAND|wxALL, 9 );\r
511         \r
512         wxBoxSizer* bSizer58;\r
513         bSizer58 = new wxBoxSizer( wxHORIZONTAL );\r
514         \r
515         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
516         bSizer58->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
517         \r
518         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
519         bSizer58->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
520         \r
521         m_buttonApply = new wxButton( this, wxID_APPLY, wxT("&Apply"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
522         bSizer58->Add( m_buttonApply, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
523         \r
524         bSizer55->Add( bSizer58, 0, wxALIGN_RIGHT, 5 );\r
525         \r
526         this->SetSizer( bSizer55 );\r
527         this->Layout();\r
528         \r
529         // Connect Events\r
530         m_listBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );\r
531         m_textCtrlTransactionFee->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );\r
532         m_checkBoxLimitProcessors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxLimitProcessors ), NULL, this );\r
533         m_checkBoxMinimizeToTray->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );\r
534         m_checkBoxUseProxy->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );\r
535         m_textCtrlProxyIP->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
536         m_textCtrlProxyPort->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
537         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );\r
538         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );\r
539         m_buttonApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );\r
540 }\r
541 \r
542 COptionsDialogBase::~COptionsDialogBase()\r
543 {\r
544         // Disconnect Events\r
545         m_listBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );\r
546         m_textCtrlTransactionFee->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );\r
547         m_checkBoxLimitProcessors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxLimitProcessors ), NULL, this );\r
548         m_checkBoxMinimizeToTray->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );\r
549         m_checkBoxUseProxy->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );\r
550         m_textCtrlProxyIP->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
551         m_textCtrlProxyPort->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
552         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );\r
553         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );\r
554         m_buttonApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );\r
555 }\r
556 \r
557 CAboutDialogBase::CAboutDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
558 {\r
559         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
560         \r
561         wxBoxSizer* bSizer60;\r
562         bSizer60 = new wxBoxSizer( wxVERTICAL );\r
563         \r
564         wxBoxSizer* bSizer62;\r
565         bSizer62 = new wxBoxSizer( wxHORIZONTAL );\r
566         \r
567         \r
568         bSizer62->Add( 60, 0, 0, wxEXPAND, 5 );\r
569         \r
570         wxBoxSizer* bSizer63;\r
571         bSizer63 = new wxBoxSizer( wxVERTICAL );\r
572         \r
573         \r
574         bSizer63->Add( 0, 50, 0, wxEXPAND, 5 );\r
575         \r
576         wxBoxSizer* bSizer64;\r
577         bSizer64 = new wxBoxSizer( wxHORIZONTAL );\r
578         \r
579         m_staticText40 = new wxStaticText( this, wxID_ANY, wxT("Bitcoin "), wxDefaultPosition, wxDefaultSize, 0 );\r
580         m_staticText40->Wrap( -1 );\r
581         m_staticText40->SetFont( wxFont( 10, 74, 90, 92, false, wxT("Tahoma") ) );\r
582         \r
583         bSizer64->Add( m_staticText40, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
584         \r
585         m_staticTextVersion = new wxStaticText( this, wxID_ANY, wxT("version"), wxDefaultPosition, wxDefaultSize, 0 );\r
586         m_staticTextVersion->Wrap( -1 );\r
587         m_staticTextVersion->SetFont( wxFont( 10, 74, 90, 90, false, wxT("Tahoma") ) );\r
588         \r
589         bSizer64->Add( m_staticTextVersion, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxRIGHT, 5 );\r
590         \r
591         bSizer63->Add( bSizer64, 0, wxEXPAND, 5 );\r
592         \r
593         \r
594         bSizer63->Add( 0, 4, 0, wxEXPAND, 5 );\r
595         \r
596         m_staticTextMain = new wxStaticText( this, wxID_ANY, wxT("Copyright Â© 2009 Satoshi Nakamoto.\n\nThis is experimental software.  Do not rely on it for actual financial transactions.\n\nDistributed under the MIT/X11 software license, see the accompanying file license.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by Eric Young (eay@cryptsoft.com)."), wxDefaultPosition, wxDefaultSize, 0 );\r
597         m_staticTextMain->Wrap( 400 );\r
598         bSizer63->Add( m_staticTextMain, 0, wxALL, 5 );\r
599         \r
600         \r
601         bSizer63->Add( 0, 0, 1, wxEXPAND, 5 );\r
602         \r
603         bSizer62->Add( bSizer63, 1, wxEXPAND, 5 );\r
604         \r
605         bSizer60->Add( bSizer62, 1, wxEXPAND, 5 );\r
606         \r
607         wxBoxSizer* bSizer61;\r
608         bSizer61 = new wxBoxSizer( wxHORIZONTAL );\r
609         \r
610         \r
611         bSizer61->Add( 0, 0, 1, wxEXPAND, 5 );\r
612         \r
613         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
614         bSizer61->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
615         \r
616         bSizer60->Add( bSizer61, 0, wxALIGN_RIGHT|wxEXPAND, 5 );\r
617         \r
618         this->SetSizer( bSizer60 );\r
619         this->Layout();\r
620         \r
621         // Connect Events\r
622         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );\r
623 }\r
624 \r
625 CAboutDialogBase::~CAboutDialogBase()\r
626 {\r
627         // Disconnect Events\r
628         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );\r
629 }\r
630 \r
631 CSendDialogBase::CSendDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
632 {\r
633         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
634         \r
635         wxBoxSizer* bSizer21;\r
636         bSizer21 = new wxBoxSizer( wxVERTICAL );\r
637         \r
638         \r
639         bSizer21->Add( 0, 5, 0, wxEXPAND, 5 );\r
640         \r
641         wxFlexGridSizer* fgSizer1;\r
642         fgSizer1 = new wxFlexGridSizer( 3, 2, 0, 0 );\r
643         fgSizer1->AddGrowableCol( 1 );\r
644         fgSizer1->SetFlexibleDirection( wxBOTH );\r
645         fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );\r
646         \r
647         \r
648         fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );\r
649         \r
650         m_staticTextInstructions = new wxStaticText( this, wxID_ANY, wxT("Enter the recipient's IP address (e.g. 123.45.6.7) for online transfer with comments and confirmation, \nor Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) if recipient is not online."), wxDefaultPosition, wxDefaultSize, 0 );\r
651         m_staticTextInstructions->Wrap( -1 );\r
652         fgSizer1->Add( m_staticTextInstructions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
653         \r
654         wxBoxSizer* bSizer47;\r
655         bSizer47 = new wxBoxSizer( wxHORIZONTAL );\r
656         \r
657         bSizer47->SetMinSize( wxSize( 70,-1 ) ); \r
658         \r
659         bSizer47->Add( 0, 0, 1, wxEXPAND, 5 );\r
660         \r
661         m_bitmapCheckMark = new wxStaticBitmap( this, wxID_ANY, wxBitmap( check_xpm ), wxDefaultPosition, wxSize( 16,16 ), 0 );\r
662         bSizer47->Add( m_bitmapCheckMark, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
663         \r
664         m_staticText36 = new wxStaticText( this, wxID_ANY, wxT("Pay &To:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
665         m_staticText36->Wrap( -1 );\r
666         bSizer47->Add( m_staticText36, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
667         \r
668         fgSizer1->Add( bSizer47, 1, wxEXPAND|wxLEFT, 5 );\r
669         \r
670         wxBoxSizer* bSizer19;\r
671         bSizer19 = new wxBoxSizer( wxHORIZONTAL );\r
672         \r
673         m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLPAYTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
674         bSizer19->Add( m_textCtrlAddress, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
675         \r
676         wxBoxSizer* bSizer66;\r
677         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
678         \r
679         m_buttonPaste = new wxButton( this, wxID_BUTTONPASTE, wxT("&Paste"), wxDefaultPosition, wxSize( -1,-1 ), wxBU_EXACTFIT );\r
680         bSizer66->Add( m_buttonPaste, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );\r
681         \r
682         m_buttonAddress = new wxButton( this, wxID_BUTTONADDRESSBOOK, wxT(" Address &Book..."), wxDefaultPosition, wxDefaultSize, 0 );\r
683         bSizer66->Add( m_buttonAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );\r
684         \r
685         bSizer19->Add( bSizer66, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
686         \r
687         fgSizer1->Add( bSizer19, 1, wxEXPAND|wxRIGHT, 5 );\r
688         \r
689         m_staticText19 = new wxStaticText( this, wxID_ANY, wxT("&Amount:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
690         m_staticText19->Wrap( -1 );\r
691         fgSizer1->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 );\r
692         \r
693         m_textCtrlAmount = new wxTextCtrl( this, wxID_TEXTCTRLAMOUNT, wxEmptyString, wxDefaultPosition, wxSize( 145,-1 ), 0 );\r
694         m_textCtrlAmount->SetMaxLength( 20 ); \r
695         m_textCtrlAmount->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
696         \r
697         fgSizer1->Add( m_textCtrlAmount, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
698         \r
699         m_staticText20 = new wxStaticText( this, wxID_ANY, wxT("T&ransfer:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
700         m_staticText20->Wrap( -1 );\r
701         m_staticText20->Hide();\r
702         \r
703         fgSizer1->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
704         \r
705         wxString m_choiceTransferTypeChoices[] = { wxT(" Standard") };\r
706         int m_choiceTransferTypeNChoices = sizeof( m_choiceTransferTypeChoices ) / sizeof( wxString );\r
707         m_choiceTransferType = new wxChoice( this, wxID_CHOICETRANSFERTYPE, wxDefaultPosition, wxDefaultSize, m_choiceTransferTypeNChoices, m_choiceTransferTypeChoices, 0 );\r
708         m_choiceTransferType->SetSelection( 0 );\r
709         m_choiceTransferType->Hide();\r
710         \r
711         fgSizer1->Add( m_choiceTransferType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
712         \r
713         \r
714         fgSizer1->Add( 0, 3, 0, wxEXPAND, 5 );\r
715         \r
716         \r
717         fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );\r
718         \r
719         bSizer21->Add( fgSizer1, 0, wxEXPAND|wxLEFT, 5 );\r
720         \r
721         wxBoxSizer* bSizer672;\r
722         bSizer672 = new wxBoxSizer( wxHORIZONTAL );\r
723         \r
724         wxBoxSizer* bSizer681;\r
725         bSizer681 = new wxBoxSizer( wxVERTICAL );\r
726         \r
727         m_staticTextFrom = new wxStaticText( this, wxID_ANY, wxT("&From:"), wxDefaultPosition, wxDefaultSize, 0 );\r
728         m_staticTextFrom->Wrap( -1 );\r
729         bSizer681->Add( m_staticTextFrom, 0, wxBOTTOM|wxLEFT, 5 );\r
730         \r
731         m_textCtrlFrom = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
732         bSizer681->Add( m_textCtrlFrom, 0, wxLEFT|wxEXPAND, 5 );\r
733         \r
734         bSizer672->Add( bSizer681, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );\r
735         \r
736         bSizer21->Add( bSizer672, 0, wxEXPAND, 5 );\r
737         \r
738         wxBoxSizer* bSizer67;\r
739         bSizer67 = new wxBoxSizer( wxHORIZONTAL );\r
740         \r
741         wxBoxSizer* bSizer68;\r
742         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
743         \r
744         m_staticTextMessage = new wxStaticText( this, wxID_ANY, wxT("&Message:"), wxDefaultPosition, wxDefaultSize, 0 );\r
745         m_staticTextMessage->Wrap( -1 );\r
746         bSizer68->Add( m_staticTextMessage, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );\r
747         \r
748         m_textCtrlMessage = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );\r
749         bSizer68->Add( m_textCtrlMessage, 1, wxEXPAND|wxLEFT, 5 );\r
750         \r
751         bSizer67->Add( bSizer68, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );\r
752         \r
753         bSizer21->Add( bSizer67, 1, wxEXPAND, 5 );\r
754         \r
755         wxBoxSizer* bSizer23;\r
756         bSizer23 = new wxBoxSizer( wxHORIZONTAL );\r
757         \r
758         \r
759         bSizer23->Add( 0, 0, 1, wxEXPAND, 5 );\r
760         \r
761         m_buttonSend = new wxButton( this, wxID_BUTTONSEND, wxT("&Send"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
762         m_buttonSend->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
763         \r
764         bSizer23->Add( m_buttonSend, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
765         \r
766         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
767         bSizer23->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
768         \r
769         bSizer21->Add( bSizer23, 0, wxEXPAND, 5 );\r
770         \r
771         this->SetSizer( bSizer21 );\r
772         this->Layout();\r
773         \r
774         // Connect Events\r
775         m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
776         m_textCtrlAddress->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );\r
777         m_buttonPaste->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );\r
778         m_buttonAddress->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );\r
779         m_textCtrlAmount->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
780         m_textCtrlAmount->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );\r
781         m_textCtrlFrom->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
782         m_textCtrlMessage->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
783         m_buttonSend->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );\r
784         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );\r
785 }\r
786 \r
787 CSendDialogBase::~CSendDialogBase()\r
788 {\r
789         // Disconnect Events\r
790         m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
791         m_textCtrlAddress->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );\r
792         m_buttonPaste->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );\r
793         m_buttonAddress->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );\r
794         m_textCtrlAmount->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
795         m_textCtrlAmount->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );\r
796         m_textCtrlFrom->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
797         m_textCtrlMessage->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
798         m_buttonSend->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );\r
799         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );\r
800 }\r
801 \r
802 CSendingDialogBase::CSendingDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
803 {\r
804         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
805         \r
806         wxBoxSizer* bSizer68;\r
807         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
808         \r
809         m_staticTextSending = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,14 ), 0 );\r
810         m_staticTextSending->Wrap( -1 );\r
811         bSizer68->Add( m_staticTextSending, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 8 );\r
812         \r
813         m_textCtrlStatus = new wxTextCtrl( this, wxID_ANY, wxT("\n\nConnecting..."), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE|wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY|wxNO_BORDER );\r
814         m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );\r
815         \r
816         bSizer68->Add( m_textCtrlStatus, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );\r
817         \r
818         wxBoxSizer* bSizer69;\r
819         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
820         \r
821         \r
822         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
823         \r
824         m_buttonOK = new wxButton( this, wxID_ANY, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 );\r
825         m_buttonOK->Enable( false );\r
826         \r
827         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
828         \r
829         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
830         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
831         \r
832         bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );\r
833         \r
834         this->SetSizer( bSizer68 );\r
835         this->Layout();\r
836         \r
837         // Connect Events\r
838         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );\r
839         this->Connect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );\r
840         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );\r
841         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );\r
842 }\r
843 \r
844 CSendingDialogBase::~CSendingDialogBase()\r
845 {\r
846         // Disconnect Events\r
847         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );\r
848         this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );\r
849         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );\r
850         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );\r
851 }\r
852 \r
853 CYourAddressDialogBase::CYourAddressDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
854 {\r
855         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
856         \r
857         wxBoxSizer* bSizer68;\r
858         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
859         \r
860         \r
861         bSizer68->Add( 0, 5, 0, wxEXPAND, 5 );\r
862         \r
863         m_staticText45 = new wxStaticText( this, wxID_ANY, wxT("These are your Bitcoin addresses for receiving payments.  You may want to give a different one to each sender so you can keep track of who is paying you.  The highlighted address is displayed in the main window."), wxDefaultPosition, wxDefaultSize, 0 );\r
864         m_staticText45->Wrap( 590 );\r
865         bSizer68->Add( m_staticText45, 0, wxALL, 5 );\r
866         \r
867         m_listCtrl = new wxListCtrl( this, wxID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );\r
868         bSizer68->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );\r
869         \r
870         wxBoxSizer* bSizer69;\r
871         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
872         \r
873         \r
874         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
875         \r
876         m_buttonRename = new wxButton( this, wxID_BUTTONRENAME, wxT("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );\r
877         bSizer69->Add( m_buttonRename, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
878         \r
879         m_buttonNew = new wxButton( this, wxID_BUTTONNEW, wxT(" &New Address... "), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
880         bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
881         \r
882         m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, wxT(" &Copy to Clipboard "), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
883         bSizer69->Add( m_buttonCopy, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
884         \r
885         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 );\r
886         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
887         \r
888         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
889         m_buttonCancel->Hide();\r
890         \r
891         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
892         \r
893         bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );\r
894         \r
895         this->SetSizer( bSizer68 );\r
896         this->Layout();\r
897         \r
898         // Connect Events\r
899         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );\r
900         m_listCtrl->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );\r
901         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );\r
902         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );\r
903         m_buttonRename->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );\r
904         m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );\r
905         m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );\r
906         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );\r
907         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );\r
908 }\r
909 \r
910 CYourAddressDialogBase::~CYourAddressDialogBase()\r
911 {\r
912         // Disconnect Events\r
913         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );\r
914         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );\r
915         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );\r
916         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );\r
917         m_buttonRename->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );\r
918         m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );\r
919         m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );\r
920         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );\r
921         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );\r
922 }\r
923 \r
924 CAddressBookDialogBase::CAddressBookDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
925 {\r
926         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
927         \r
928         wxBoxSizer* bSizer68;\r
929         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
930         \r
931         \r
932         bSizer68->Add( 0, 5, 0, wxEXPAND, 5 );\r
933         \r
934         m_staticText55 = new wxStaticText( this, wxID_ANY, wxT("Bitcoin Address"), wxDefaultPosition, wxDefaultSize, 0 );\r
935         m_staticText55->Wrap( -1 );\r
936         m_staticText55->Hide();\r
937         \r
938         bSizer68->Add( m_staticText55, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
939         \r
940         m_listCtrl = new wxListCtrl( this, wxID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );\r
941         bSizer68->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );\r
942         \r
943         wxBoxSizer* bSizer69;\r
944         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
945         \r
946         \r
947         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
948         \r
949         m_buttonEdit = new wxButton( this, wxID_BUTTONEDIT, wxT("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );\r
950         bSizer69->Add( m_buttonEdit, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
951         \r
952         m_buttonNew = new wxButton( this, wxID_BUTTONNEW, wxT(" &New Address... "), wxDefaultPosition, wxDefaultSize, 0 );\r
953         bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
954         \r
955         m_buttonDelete = new wxButton( this, wxID_BUTTONDELETE, wxT("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );\r
956         bSizer69->Add( m_buttonDelete, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
957         \r
958         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
959         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
960         \r
961         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
962         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
963         \r
964         bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );\r
965         \r
966         this->SetSizer( bSizer68 );\r
967         this->Layout();\r
968         \r
969         // Connect Events\r
970         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );\r
971         m_listCtrl->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
972         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
973         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
974         m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );\r
975         m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );\r
976         m_buttonDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );\r
977         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );\r
978         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );\r
979 }\r
980 \r
981 CAddressBookDialogBase::~CAddressBookDialogBase()\r
982 {\r
983         // Disconnect Events\r
984         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );\r
985         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
986         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
987         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
988         m_buttonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );\r
989         m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );\r
990         m_buttonDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );\r
991         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );\r
992         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );\r
993 }\r
994 \r
995 CProductsDialogBase::CProductsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
996 {\r
997         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
998         \r
999         wxBoxSizer* bSizer22;\r
1000         bSizer22 = new wxBoxSizer( wxVERTICAL );\r
1001         \r
1002         wxBoxSizer* bSizer23;\r
1003         bSizer23 = new wxBoxSizer( wxHORIZONTAL );\r
1004         \r
1005         m_comboBoxCategory = new wxComboBox( this, wxID_ANY, wxT("(Any Category)"), wxDefaultPosition, wxSize( 150,-1 ), 0, NULL, 0 );\r
1006         m_comboBoxCategory->Append( wxT("(Any Category)") );\r
1007         bSizer23->Add( m_comboBoxCategory, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1008         \r
1009         m_textCtrlSearch = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1010         bSizer23->Add( m_textCtrlSearch, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1011         \r
1012         m_buttonSearch = new wxButton( this, wxID_ANY, wxT("&Search"), wxDefaultPosition, wxDefaultSize, 0 );\r
1013         bSizer23->Add( m_buttonSearch, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1014         \r
1015         bSizer22->Add( bSizer23, 0, wxEXPAND|wxTOP|wxBOTTOM|wxRIGHT, 5 );\r
1016         \r
1017         m_listCtrl = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT );\r
1018         bSizer22->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );\r
1019         \r
1020         this->SetSizer( bSizer22 );\r
1021         this->Layout();\r
1022         \r
1023         // Connect Events\r
1024         m_comboBoxCategory->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( CProductsDialogBase::OnCombobox ), NULL, this );\r
1025         m_textCtrlSearch->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CProductsDialogBase::OnKeyDown ), NULL, this );\r
1026         m_buttonSearch->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CProductsDialogBase::OnButtonSearch ), NULL, this );\r
1027         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CProductsDialogBase::OnListItemActivated ), NULL, this );\r
1028 }\r
1029 \r
1030 CProductsDialogBase::~CProductsDialogBase()\r
1031 {\r
1032         // Disconnect Events\r
1033         m_comboBoxCategory->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( CProductsDialogBase::OnCombobox ), NULL, this );\r
1034         m_textCtrlSearch->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CProductsDialogBase::OnKeyDown ), NULL, this );\r
1035         m_buttonSearch->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CProductsDialogBase::OnButtonSearch ), NULL, this );\r
1036         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CProductsDialogBase::OnListItemActivated ), NULL, this );\r
1037 }\r
1038 \r
1039 CEditProductDialogBase::CEditProductDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
1040 {\r
1041         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1042         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_MENU ) );\r
1043         \r
1044         wxBoxSizer* bSizer20;\r
1045         bSizer20 = new wxBoxSizer( wxVERTICAL );\r
1046         \r
1047         m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTAB_TRAVERSAL|wxVSCROLL );\r
1048         m_scrolledWindow->SetScrollRate( 5, 5 );\r
1049         m_scrolledWindow->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );\r
1050         \r
1051         wxBoxSizer* bSizer21;\r
1052         bSizer21 = new wxBoxSizer( wxVERTICAL );\r
1053         \r
1054         wxFlexGridSizer* fgSizer8;\r
1055         fgSizer8 = new wxFlexGridSizer( 0, 2, 0, 0 );\r
1056         fgSizer8->AddGrowableCol( 1 );\r
1057         fgSizer8->SetFlexibleDirection( wxBOTH );\r
1058         fgSizer8->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );\r
1059         \r
1060         m_staticText106 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Category"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
1061         m_staticText106->Wrap( -1 );\r
1062         fgSizer8->Add( m_staticText106, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
1063         \r
1064         m_comboBoxCategory = new wxComboBox( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); \r
1065         m_comboBoxCategory->SetMinSize( wxSize( 180,-1 ) );\r
1066         \r
1067         fgSizer8->Add( m_comboBoxCategory, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1068         \r
1069         m_staticText108 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Title"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
1070         m_staticText108->Wrap( -1 );\r
1071         fgSizer8->Add( m_staticText108, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
1072         \r
1073         m_textCtrlTitle = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1074         fgSizer8->Add( m_textCtrlTitle, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1075         \r
1076         m_staticText107 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Price"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );\r
1077         m_staticText107->Wrap( -1 );\r
1078         fgSizer8->Add( m_staticText107, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
1079         \r
1080         m_textCtrlPrice = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1081         m_textCtrlPrice->SetMinSize( wxSize( 105,-1 ) );\r
1082         \r
1083         fgSizer8->Add( m_textCtrlPrice, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1084         \r
1085         bSizer21->Add( fgSizer8, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );\r
1086         \r
1087         m_staticText22 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Page 1: Description"), wxDefaultPosition, wxDefaultSize, 0 );\r
1088         m_staticText22->Wrap( -1 );\r
1089         bSizer21->Add( m_staticText22, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1090         \r
1091         m_textCtrlDescription = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );\r
1092         m_textCtrlDescription->SetMinSize( wxSize( -1,170 ) );\r
1093         \r
1094         bSizer21->Add( m_textCtrlDescription, 0, wxALL|wxEXPAND, 5 );\r
1095         \r
1096         m_staticText23 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Page 2: Order Form"), wxDefaultPosition, wxDefaultSize, 0 );\r
1097         m_staticText23->Wrap( -1 );\r
1098         bSizer21->Add( m_staticText23, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1099         \r
1100         m_textCtrlInstructions = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );\r
1101         m_textCtrlInstructions->SetMinSize( wxSize( -1,120 ) );\r
1102         \r
1103         bSizer21->Add( m_textCtrlInstructions, 0, wxEXPAND|wxALL, 5 );\r
1104         \r
1105         fgSizer5 = new wxFlexGridSizer( 0, 3, 0, 0 );\r
1106         fgSizer5->AddGrowableCol( 1 );\r
1107         fgSizer5->SetFlexibleDirection( wxBOTH );\r
1108         fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );\r
1109         \r
1110         m_staticText24 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Label"), wxDefaultPosition, wxDefaultSize, 0 );\r
1111         m_staticText24->Wrap( -1 );\r
1112         fgSizer5->Add( m_staticText24, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );\r
1113         \r
1114         m_staticText25 = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Comma separated list of choices, or leave blank for text field"), wxDefaultPosition, wxDefaultSize, 0 );\r
1115         m_staticText25->Wrap( -1 );\r
1116         fgSizer5->Add( m_staticText25, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 );\r
1117         \r
1118         \r
1119         fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 );\r
1120         \r
1121         m_textCtrlLabel0 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1122         m_textCtrlLabel0->SetMinSize( wxSize( 150,-1 ) );\r
1123         \r
1124         fgSizer5->Add( m_textCtrlLabel0, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1125         \r
1126         m_textCtrlField0 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1127         fgSizer5->Add( m_textCtrlField0, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1128         \r
1129         m_buttonDel0 = new wxButton( m_scrolledWindow, wxID_DEL0, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1130         fgSizer5->Add( m_buttonDel0, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );\r
1131         \r
1132         m_textCtrlLabel1 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1133         m_textCtrlLabel1->SetMinSize( wxSize( 150,-1 ) );\r
1134         \r
1135         fgSizer5->Add( m_textCtrlLabel1, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1136         \r
1137         m_textCtrlField1 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1138         fgSizer5->Add( m_textCtrlField1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1139         \r
1140         m_buttonDel1 = new wxButton( m_scrolledWindow, wxID_DEL1, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1141         fgSizer5->Add( m_buttonDel1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1142         \r
1143         m_textCtrlLabel2 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1144         m_textCtrlLabel2->SetMinSize( wxSize( 150,-1 ) );\r
1145         \r
1146         fgSizer5->Add( m_textCtrlLabel2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1147         \r
1148         m_textCtrlField2 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1149         fgSizer5->Add( m_textCtrlField2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1150         \r
1151         m_buttonDel2 = new wxButton( m_scrolledWindow, wxID_DEL2, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1152         fgSizer5->Add( m_buttonDel2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1153         \r
1154         m_textCtrlLabel3 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1155         m_textCtrlLabel3->SetMinSize( wxSize( 150,-1 ) );\r
1156         \r
1157         fgSizer5->Add( m_textCtrlLabel3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1158         \r
1159         m_textCtrlField3 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1160         fgSizer5->Add( m_textCtrlField3, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1161         \r
1162         m_buttonDel3 = new wxButton( m_scrolledWindow, wxID_DEL3, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1163         fgSizer5->Add( m_buttonDel3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1164         \r
1165         m_textCtrlLabel4 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1166         m_textCtrlLabel4->SetMinSize( wxSize( 150,-1 ) );\r
1167         \r
1168         fgSizer5->Add( m_textCtrlLabel4, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1169         \r
1170         m_textCtrlField4 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1171         fgSizer5->Add( m_textCtrlField4, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1172         \r
1173         m_buttonDel4 = new wxButton( m_scrolledWindow, wxID_DEL4, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1174         fgSizer5->Add( m_buttonDel4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1175         \r
1176         m_textCtrlLabel5 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1177         m_textCtrlLabel5->SetMinSize( wxSize( 150,-1 ) );\r
1178         \r
1179         fgSizer5->Add( m_textCtrlLabel5, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1180         \r
1181         m_textCtrlField5 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1182         fgSizer5->Add( m_textCtrlField5, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1183         \r
1184         m_buttonDel5 = new wxButton( m_scrolledWindow, wxID_DEL5, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1185         fgSizer5->Add( m_buttonDel5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1186         \r
1187         m_textCtrlLabel6 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1188         m_textCtrlLabel6->SetMinSize( wxSize( 150,-1 ) );\r
1189         \r
1190         fgSizer5->Add( m_textCtrlLabel6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1191         \r
1192         m_textCtrlField6 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1193         fgSizer5->Add( m_textCtrlField6, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1194         \r
1195         m_buttonDel6 = new wxButton( m_scrolledWindow, wxID_DEL6, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1196         fgSizer5->Add( m_buttonDel6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1197         \r
1198         m_textCtrlLabel7 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1199         m_textCtrlLabel7->SetMinSize( wxSize( 150,-1 ) );\r
1200         \r
1201         fgSizer5->Add( m_textCtrlLabel7, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1202         \r
1203         m_textCtrlField7 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1204         fgSizer5->Add( m_textCtrlField7, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1205         \r
1206         m_buttonDel7 = new wxButton( m_scrolledWindow, wxID_DEL7, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1207         fgSizer5->Add( m_buttonDel7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1208         \r
1209         m_textCtrlLabel8 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1210         m_textCtrlLabel8->SetMinSize( wxSize( 150,-1 ) );\r
1211         \r
1212         fgSizer5->Add( m_textCtrlLabel8, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1213         \r
1214         m_textCtrlField8 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1215         fgSizer5->Add( m_textCtrlField8, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1216         \r
1217         m_buttonDel8 = new wxButton( m_scrolledWindow, wxID_DEL8, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1218         fgSizer5->Add( m_buttonDel8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1219         \r
1220         m_textCtrlLabel9 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1221         m_textCtrlLabel9->SetMinSize( wxSize( 150,-1 ) );\r
1222         \r
1223         fgSizer5->Add( m_textCtrlLabel9, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1224         \r
1225         m_textCtrlField9 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1226         fgSizer5->Add( m_textCtrlField9, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1227         \r
1228         m_buttonDel9 = new wxButton( m_scrolledWindow, wxID_DEL9, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1229         fgSizer5->Add( m_buttonDel9, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1230         \r
1231         m_textCtrlLabel10 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1232         m_textCtrlLabel10->SetMinSize( wxSize( 150,-1 ) );\r
1233         \r
1234         fgSizer5->Add( m_textCtrlLabel10, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1235         \r
1236         m_textCtrlField10 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1237         fgSizer5->Add( m_textCtrlField10, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1238         \r
1239         m_buttonDel10 = new wxButton( m_scrolledWindow, wxID_DEL10, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1240         fgSizer5->Add( m_buttonDel10, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1241         \r
1242         m_textCtrlLabel11 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1243         m_textCtrlLabel11->SetMinSize( wxSize( 150,-1 ) );\r
1244         \r
1245         fgSizer5->Add( m_textCtrlLabel11, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1246         \r
1247         m_textCtrlField11 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1248         fgSizer5->Add( m_textCtrlField11, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1249         \r
1250         m_buttonDel11 = new wxButton( m_scrolledWindow, wxID_DEL11, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1251         fgSizer5->Add( m_buttonDel11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1252         \r
1253         m_textCtrlLabel12 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1254         m_textCtrlLabel12->SetMinSize( wxSize( 150,-1 ) );\r
1255         \r
1256         fgSizer5->Add( m_textCtrlLabel12, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1257         \r
1258         m_textCtrlField12 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1259         fgSizer5->Add( m_textCtrlField12, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1260         \r
1261         m_buttonDel12 = new wxButton( m_scrolledWindow, wxID_DEL12, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1262         fgSizer5->Add( m_buttonDel12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1263         \r
1264         m_textCtrlLabel13 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1265         m_textCtrlLabel13->SetMinSize( wxSize( 150,-1 ) );\r
1266         \r
1267         fgSizer5->Add( m_textCtrlLabel13, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1268         \r
1269         m_textCtrlField13 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1270         fgSizer5->Add( m_textCtrlField13, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1271         \r
1272         m_buttonDel13 = new wxButton( m_scrolledWindow, wxID_DEL13, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1273         fgSizer5->Add( m_buttonDel13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1274         \r
1275         m_textCtrlLabel14 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1276         m_textCtrlLabel14->SetMinSize( wxSize( 150,-1 ) );\r
1277         \r
1278         fgSizer5->Add( m_textCtrlLabel14, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1279         \r
1280         m_textCtrlField14 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1281         fgSizer5->Add( m_textCtrlField14, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1282         \r
1283         m_buttonDel14 = new wxButton( m_scrolledWindow, wxID_DEL14, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1284         fgSizer5->Add( m_buttonDel14, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1285         \r
1286         m_textCtrlLabel15 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1287         m_textCtrlLabel15->SetMinSize( wxSize( 150,-1 ) );\r
1288         \r
1289         fgSizer5->Add( m_textCtrlLabel15, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1290         \r
1291         m_textCtrlField15 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1292         fgSizer5->Add( m_textCtrlField15, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1293         \r
1294         m_buttonDel15 = new wxButton( m_scrolledWindow, wxID_DEL15, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1295         fgSizer5->Add( m_buttonDel15, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1296         \r
1297         m_textCtrlLabel16 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1298         m_textCtrlLabel16->SetMinSize( wxSize( 150,-1 ) );\r
1299         \r
1300         fgSizer5->Add( m_textCtrlLabel16, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1301         \r
1302         m_textCtrlField16 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1303         fgSizer5->Add( m_textCtrlField16, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1304         \r
1305         m_buttonDel16 = new wxButton( m_scrolledWindow, wxID_DEL16, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1306         fgSizer5->Add( m_buttonDel16, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1307         \r
1308         m_textCtrlLabel17 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1309         m_textCtrlLabel17->SetMinSize( wxSize( 150,-1 ) );\r
1310         \r
1311         fgSizer5->Add( m_textCtrlLabel17, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1312         \r
1313         m_textCtrlField17 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1314         fgSizer5->Add( m_textCtrlField17, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1315         \r
1316         m_buttonDel17 = new wxButton( m_scrolledWindow, wxID_DEL17, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1317         fgSizer5->Add( m_buttonDel17, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1318         \r
1319         m_textCtrlLabel18 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1320         m_textCtrlLabel18->SetMinSize( wxSize( 150,-1 ) );\r
1321         \r
1322         fgSizer5->Add( m_textCtrlLabel18, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1323         \r
1324         m_textCtrlField18 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1325         fgSizer5->Add( m_textCtrlField18, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1326         \r
1327         m_buttonDel18 = new wxButton( m_scrolledWindow, wxID_DEL18, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1328         fgSizer5->Add( m_buttonDel18, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1329         \r
1330         m_textCtrlLabel19 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1331         m_textCtrlLabel19->SetMinSize( wxSize( 150,-1 ) );\r
1332         \r
1333         fgSizer5->Add( m_textCtrlLabel19, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
1334         \r
1335         m_textCtrlField19 = new wxTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1336         fgSizer5->Add( m_textCtrlField19, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 );\r
1337         \r
1338         m_buttonDel19 = new wxButton( m_scrolledWindow, wxID_DEL19, wxT("Delete"), wxDefaultPosition, wxSize( 60,20 ), 0 );\r
1339         fgSizer5->Add( m_buttonDel19, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
1340         \r
1341         bSizer21->Add( fgSizer5, 0, wxEXPAND, 5 );\r
1342         \r
1343         wxBoxSizer* bSizer25;\r
1344         bSizer25 = new wxBoxSizer( wxHORIZONTAL );\r
1345         \r
1346         m_buttonAddField = new wxButton( m_scrolledWindow, wxID_ANY, wxT("&Add Field"), wxDefaultPosition, wxDefaultSize, 0 );\r
1347         bSizer25->Add( m_buttonAddField, 0, wxALL, 5 );\r
1348         \r
1349         bSizer21->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL, 5 );\r
1350         \r
1351         m_scrolledWindow->SetSizer( bSizer21 );\r
1352         m_scrolledWindow->Layout();\r
1353         bSizer21->Fit( m_scrolledWindow );\r
1354         bSizer20->Add( m_scrolledWindow, 1, wxEXPAND|wxALL, 5 );\r
1355         \r
1356         wxBoxSizer* bSizer26;\r
1357         bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
1358         \r
1359         m_buttonOK = new wxButton( this, wxID_BUTTONSEND, wxT("&Send"), wxDefaultPosition, wxDefaultSize, 0 );\r
1360         bSizer26->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1361         \r
1362         m_buttonPreview = new wxButton( this, wxID_BUTTONPREVIEW, wxT("&Preview"), wxDefaultPosition, wxDefaultSize, 0 );\r
1363         bSizer26->Add( m_buttonPreview, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1364         \r
1365         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1366         bSizer26->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1367         \r
1368         bSizer20->Add( bSizer26, 0, wxALIGN_RIGHT, 5 );\r
1369         \r
1370         this->SetSizer( bSizer20 );\r
1371         this->Layout();\r
1372         \r
1373         // Connect Events\r
1374         m_textCtrlTitle->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1375         m_textCtrlPrice->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1376         m_textCtrlDescription->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1377         m_textCtrlInstructions->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1378         m_textCtrlLabel0->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1379         m_textCtrlField0->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1380         m_buttonDel0->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel0 ), NULL, this );\r
1381         m_textCtrlLabel1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1382         m_textCtrlField1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1383         m_buttonDel1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel1 ), NULL, this );\r
1384         m_textCtrlLabel2->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1385         m_textCtrlField2->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1386         m_buttonDel2->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel2 ), NULL, this );\r
1387         m_textCtrlLabel3->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1388         m_textCtrlField3->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1389         m_buttonDel3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel3 ), NULL, this );\r
1390         m_textCtrlLabel4->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1391         m_textCtrlField4->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1392         m_buttonDel4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel4 ), NULL, this );\r
1393         m_textCtrlLabel5->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1394         m_textCtrlField5->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1395         m_buttonDel5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel5 ), NULL, this );\r
1396         m_textCtrlLabel6->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1397         m_textCtrlField6->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1398         m_buttonDel6->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel6 ), NULL, this );\r
1399         m_textCtrlLabel7->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1400         m_textCtrlField7->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1401         m_buttonDel7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel7 ), NULL, this );\r
1402         m_textCtrlLabel8->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1403         m_textCtrlField8->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1404         m_buttonDel8->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel8 ), NULL, this );\r
1405         m_textCtrlLabel9->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1406         m_textCtrlField9->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1407         m_buttonDel9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel9 ), NULL, this );\r
1408         m_textCtrlLabel10->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1409         m_textCtrlField10->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1410         m_buttonDel10->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel10 ), NULL, this );\r
1411         m_textCtrlLabel11->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1412         m_textCtrlField11->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1413         m_buttonDel11->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel11 ), NULL, this );\r
1414         m_textCtrlLabel12->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1415         m_textCtrlField12->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1416         m_buttonDel12->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel12 ), NULL, this );\r
1417         m_textCtrlLabel13->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1418         m_textCtrlField13->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1419         m_buttonDel13->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel13 ), NULL, this );\r
1420         m_textCtrlLabel14->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1421         m_textCtrlField14->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1422         m_buttonDel14->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel14 ), NULL, this );\r
1423         m_textCtrlLabel15->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1424         m_textCtrlField15->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1425         m_buttonDel15->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel15 ), NULL, this );\r
1426         m_textCtrlLabel16->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1427         m_textCtrlField16->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1428         m_buttonDel16->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel16 ), NULL, this );\r
1429         m_textCtrlLabel17->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1430         m_textCtrlField17->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1431         m_buttonDel17->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel17 ), NULL, this );\r
1432         m_textCtrlLabel18->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1433         m_textCtrlField18->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1434         m_buttonDel18->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel18 ), NULL, this );\r
1435         m_textCtrlLabel19->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1436         m_textCtrlField19->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1437         m_buttonDel19->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel19 ), NULL, this );\r
1438         m_buttonAddField->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonAddField ), NULL, this );\r
1439         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonSend ), NULL, this );\r
1440         m_buttonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonPreview ), NULL, this );\r
1441         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonCancel ), NULL, this );\r
1442 }\r
1443 \r
1444 CEditProductDialogBase::~CEditProductDialogBase()\r
1445 {\r
1446         // Disconnect Events\r
1447         m_textCtrlTitle->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1448         m_textCtrlPrice->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1449         m_textCtrlDescription->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1450         m_textCtrlInstructions->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1451         m_textCtrlLabel0->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1452         m_textCtrlField0->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1453         m_buttonDel0->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel0 ), NULL, this );\r
1454         m_textCtrlLabel1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1455         m_textCtrlField1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1456         m_buttonDel1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel1 ), NULL, this );\r
1457         m_textCtrlLabel2->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1458         m_textCtrlField2->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1459         m_buttonDel2->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel2 ), NULL, this );\r
1460         m_textCtrlLabel3->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1461         m_textCtrlField3->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1462         m_buttonDel3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel3 ), NULL, this );\r
1463         m_textCtrlLabel4->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1464         m_textCtrlField4->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1465         m_buttonDel4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel4 ), NULL, this );\r
1466         m_textCtrlLabel5->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1467         m_textCtrlField5->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1468         m_buttonDel5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel5 ), NULL, this );\r
1469         m_textCtrlLabel6->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1470         m_textCtrlField6->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1471         m_buttonDel6->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel6 ), NULL, this );\r
1472         m_textCtrlLabel7->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1473         m_textCtrlField7->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1474         m_buttonDel7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel7 ), NULL, this );\r
1475         m_textCtrlLabel8->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1476         m_textCtrlField8->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1477         m_buttonDel8->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel8 ), NULL, this );\r
1478         m_textCtrlLabel9->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1479         m_textCtrlField9->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1480         m_buttonDel9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel9 ), NULL, this );\r
1481         m_textCtrlLabel10->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1482         m_textCtrlField10->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1483         m_buttonDel10->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel10 ), NULL, this );\r
1484         m_textCtrlLabel11->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1485         m_textCtrlField11->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1486         m_buttonDel11->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel11 ), NULL, this );\r
1487         m_textCtrlLabel12->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1488         m_textCtrlField12->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1489         m_buttonDel12->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel12 ), NULL, this );\r
1490         m_textCtrlLabel13->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1491         m_textCtrlField13->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1492         m_buttonDel13->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel13 ), NULL, this );\r
1493         m_textCtrlLabel14->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1494         m_textCtrlField14->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1495         m_buttonDel14->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel14 ), NULL, this );\r
1496         m_textCtrlLabel15->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1497         m_textCtrlField15->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1498         m_buttonDel15->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel15 ), NULL, this );\r
1499         m_textCtrlLabel16->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1500         m_textCtrlField16->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1501         m_buttonDel16->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel16 ), NULL, this );\r
1502         m_textCtrlLabel17->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1503         m_textCtrlField17->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1504         m_buttonDel17->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel17 ), NULL, this );\r
1505         m_textCtrlLabel18->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1506         m_textCtrlField18->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1507         m_buttonDel18->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel18 ), NULL, this );\r
1508         m_textCtrlLabel19->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1509         m_textCtrlField19->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditProductDialogBase::OnKeyDown ), NULL, this );\r
1510         m_buttonDel19->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonDel19 ), NULL, this );\r
1511         m_buttonAddField->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonAddField ), NULL, this );\r
1512         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonSend ), NULL, this );\r
1513         m_buttonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonPreview ), NULL, this );\r
1514         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditProductDialogBase::OnButtonCancel ), NULL, this );\r
1515 }\r
1516 \r
1517 CViewProductDialogBase::CViewProductDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
1518 {\r
1519         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1520         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_MENU ) );\r
1521         \r
1522         wxBoxSizer* bSizer20;\r
1523         bSizer20 = new wxBoxSizer( wxVERTICAL );\r
1524         \r
1525         wxBoxSizer* bSizer116;\r
1526         bSizer116 = new wxBoxSizer( wxHORIZONTAL );\r
1527         \r
1528         m_htmlWinReviews = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );\r
1529         m_htmlWinReviews->Hide();\r
1530         \r
1531         bSizer116->Add( m_htmlWinReviews, 1, wxALL|wxEXPAND, 5 );\r
1532         \r
1533         m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTAB_TRAVERSAL|wxVSCROLL );\r
1534         m_scrolledWindow->SetScrollRate( 5, 5 );\r
1535         m_scrolledWindow->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) );\r
1536         \r
1537         wxBoxSizer* bSizer21;\r
1538         bSizer21 = new wxBoxSizer( wxVERTICAL );\r
1539         \r
1540         m_richTextHeading = new wxRichTextCtrl( m_scrolledWindow, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,50 ), wxTE_READONLY|wxNO_BORDER );\r
1541         bSizer21->Add( m_richTextHeading, 0, wxEXPAND, 5 );\r
1542         \r
1543         m_staticTextInstructions = new wxStaticText( m_scrolledWindow, wxID_ANY, wxT("Order Form instructions here\nmultiple lines\n1\n2\n3\n4\n5\n6"), wxDefaultPosition, wxDefaultSize, 0 );\r
1544         m_staticTextInstructions->Wrap( -1 );\r
1545         bSizer21->Add( m_staticTextInstructions, 0, wxALL|wxEXPAND, 5 );\r
1546         \r
1547         wxBoxSizer* bSizer25;\r
1548         bSizer25 = new wxBoxSizer( wxHORIZONTAL );\r
1549         \r
1550         m_buttonSubmitForm = new wxButton( m_scrolledWindow, wxID_BUTTONSAMPLE, wxT("&Submit"), wxDefaultPosition, wxDefaultSize, 0 );\r
1551         bSizer25->Add( m_buttonSubmitForm, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1552         \r
1553         m_buttonCancelForm = new wxButton( m_scrolledWindow, wxID_CANCEL2, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1554         bSizer25->Add( m_buttonCancelForm, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1555         \r
1556         bSizer21->Add( bSizer25, 0, wxALIGN_CENTER_HORIZONTAL, 5 );\r
1557         \r
1558         m_scrolledWindow->SetSizer( bSizer21 );\r
1559         m_scrolledWindow->Layout();\r
1560         bSizer21->Fit( m_scrolledWindow );\r
1561         bSizer116->Add( m_scrolledWindow, 1, wxEXPAND|wxALL, 5 );\r
1562         \r
1563         bSizer20->Add( bSizer116, 1, wxEXPAND, 5 );\r
1564         \r
1565         wxBoxSizer* bSizer26;\r
1566         bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
1567         \r
1568         m_buttonBack = new wxButton( this, wxID_BUTTONBACK, wxT("< &Back  "), wxDefaultPosition, wxDefaultSize, 0 );\r
1569         m_buttonBack->Enable( false );\r
1570         \r
1571         bSizer26->Add( m_buttonBack, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1572         \r
1573         m_buttonNext = new wxButton( this, wxID_BUTTONNEXT, wxT("  &Next >"), wxDefaultPosition, wxDefaultSize, 0 );\r
1574         bSizer26->Add( m_buttonNext, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1575         \r
1576         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1577         bSizer26->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1578         \r
1579         bSizer20->Add( bSizer26, 0, wxALIGN_RIGHT, 5 );\r
1580         \r
1581         this->SetSizer( bSizer20 );\r
1582         this->Layout();\r
1583         \r
1584         // Connect Events\r
1585         m_buttonSubmitForm->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonSubmitForm ), NULL, this );\r
1586         m_buttonCancelForm->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonCancelForm ), NULL, this );\r
1587         m_buttonBack->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonBack ), NULL, this );\r
1588         m_buttonNext->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonNext ), NULL, this );\r
1589         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonCancel ), NULL, this );\r
1590 }\r
1591 \r
1592 CViewProductDialogBase::~CViewProductDialogBase()\r
1593 {\r
1594         // Disconnect Events\r
1595         m_buttonSubmitForm->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonSubmitForm ), NULL, this );\r
1596         m_buttonCancelForm->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonCancelForm ), NULL, this );\r
1597         m_buttonBack->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonBack ), NULL, this );\r
1598         m_buttonNext->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonNext ), NULL, this );\r
1599         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewProductDialogBase::OnButtonCancel ), NULL, this );\r
1600 }\r
1601 \r
1602 CViewOrderDialogBase::CViewOrderDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
1603 {\r
1604         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1605         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_MENU ) );\r
1606         \r
1607         wxBoxSizer* bSizer20;\r
1608         bSizer20 = new wxBoxSizer( wxVERTICAL );\r
1609         \r
1610         wxBoxSizer* bSizer116;\r
1611         bSizer116 = new wxBoxSizer( wxHORIZONTAL );\r
1612         \r
1613         m_htmlWin = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );\r
1614         bSizer116->Add( m_htmlWin, 1, wxALL|wxEXPAND, 5 );\r
1615         \r
1616         bSizer20->Add( bSizer116, 1, wxEXPAND, 5 );\r
1617         \r
1618         wxBoxSizer* bSizer26;\r
1619         bSizer26 = new wxBoxSizer( wxHORIZONTAL );\r
1620         \r
1621         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxDefaultSize, 0 );\r
1622         bSizer26->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1623         \r
1624         bSizer20->Add( bSizer26, 0, wxALIGN_RIGHT, 5 );\r
1625         \r
1626         this->SetSizer( bSizer20 );\r
1627         this->Layout();\r
1628         \r
1629         // Connect Events\r
1630         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewOrderDialogBase::OnButtonOK ), NULL, this );\r
1631 }\r
1632 \r
1633 CViewOrderDialogBase::~CViewOrderDialogBase()\r
1634 {\r
1635         // Disconnect Events\r
1636         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CViewOrderDialogBase::OnButtonOK ), NULL, this );\r
1637 }\r
1638 \r
1639 CEditReviewDialogBase::CEditReviewDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )\r
1640 {\r
1641         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1642         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_MENU ) );\r
1643         \r
1644         wxBoxSizer* bSizer112;\r
1645         bSizer112 = new wxBoxSizer( wxVERTICAL );\r
1646         \r
1647         \r
1648         bSizer112->Add( 0, 3, 0, 0, 5 );\r
1649         \r
1650         m_staticTextSeller = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1651         m_staticTextSeller->Wrap( -1 );\r
1652         bSizer112->Add( m_staticTextSeller, 0, wxALL|wxEXPAND, 5 );\r
1653         \r
1654         \r
1655         bSizer112->Add( 0, 3, 0, 0, 5 );\r
1656         \r
1657         m_staticText110 = new wxStaticText( this, wxID_ANY, wxT("Rating"), wxDefaultPosition, wxDefaultSize, 0 );\r
1658         m_staticText110->Wrap( -1 );\r
1659         bSizer112->Add( m_staticText110, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1660         \r
1661         wxString m_choiceStarsChoices[] = { wxT(" 1 star"), wxT(" 2 stars"), wxT(" 3 stars"), wxT(" 4 stars"), wxT(" 5 stars") };\r
1662         int m_choiceStarsNChoices = sizeof( m_choiceStarsChoices ) / sizeof( wxString );\r
1663         m_choiceStars = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceStarsNChoices, m_choiceStarsChoices, 0 );\r
1664         m_choiceStars->SetSelection( 0 );\r
1665         bSizer112->Add( m_choiceStars, 0, wxALL, 5 );\r
1666         \r
1667         m_staticText43 = new wxStaticText( this, wxID_ANY, wxT("Review"), wxDefaultPosition, wxDefaultSize, 0 );\r
1668         m_staticText43->Wrap( -1 );\r
1669         bSizer112->Add( m_staticText43, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1670         \r
1671         m_textCtrlReview = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );\r
1672         bSizer112->Add( m_textCtrlReview, 1, wxALL|wxEXPAND, 5 );\r
1673         \r
1674         wxBoxSizer* bSizer113;\r
1675         bSizer113 = new wxBoxSizer( wxHORIZONTAL );\r
1676         \r
1677         m_buttonSubmit = new wxButton( this, wxID_SUBMIT, wxT("&Submit"), wxDefaultPosition, wxDefaultSize, 0 );\r
1678         bSizer113->Add( m_buttonSubmit, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1679         \r
1680         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1681         bSizer113->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1682         \r
1683         bSizer112->Add( bSizer113, 0, wxALIGN_RIGHT, 5 );\r
1684         \r
1685         this->SetSizer( bSizer112 );\r
1686         this->Layout();\r
1687         \r
1688         // Connect Events\r
1689         m_textCtrlReview->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditReviewDialogBase::OnKeyDown ), NULL, this );\r
1690         m_buttonSubmit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditReviewDialogBase::OnButtonSubmit ), NULL, this );\r
1691         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditReviewDialogBase::OnButtonCancel ), NULL, this );\r
1692 }\r
1693 \r
1694 CEditReviewDialogBase::~CEditReviewDialogBase()\r
1695 {\r
1696         // Disconnect Events\r
1697         m_textCtrlReview->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CEditReviewDialogBase::OnKeyDown ), NULL, this );\r
1698         m_buttonSubmit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditReviewDialogBase::OnButtonSubmit ), NULL, this );\r
1699         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CEditReviewDialogBase::OnButtonCancel ), NULL, this );\r
1700 }\r
1701 \r
1702 CGetTextFromUserDialogBase::CGetTextFromUserDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style )\r
1703 {\r
1704         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1705         \r
1706         wxBoxSizer* bSizer79;\r
1707         bSizer79 = new wxBoxSizer( wxVERTICAL );\r
1708         \r
1709         wxBoxSizer* bSizer81;\r
1710         bSizer81 = new wxBoxSizer( wxVERTICAL );\r
1711         \r
1712         \r
1713         bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );\r
1714         \r
1715         m_staticTextMessage1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1716         m_staticTextMessage1->Wrap( -1 );\r
1717         bSizer81->Add( m_staticTextMessage1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1718         \r
1719         m_textCtrl1 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );\r
1720         bSizer81->Add( m_textCtrl1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );\r
1721         \r
1722         m_staticTextMessage2 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1723         m_staticTextMessage2->Wrap( -1 );\r
1724         m_staticTextMessage2->Hide();\r
1725         \r
1726         bSizer81->Add( m_staticTextMessage2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1727         \r
1728         m_textCtrl2 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );\r
1729         m_textCtrl2->Hide();\r
1730         \r
1731         bSizer81->Add( m_textCtrl2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );\r
1732         \r
1733         \r
1734         bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );\r
1735         \r
1736         bSizer79->Add( bSizer81, 1, wxEXPAND|wxALL, 10 );\r
1737         \r
1738         wxBoxSizer* bSizer80;\r
1739         bSizer80 = new wxBoxSizer( wxHORIZONTAL );\r
1740         \r
1741         \r
1742         bSizer80->Add( 0, 0, 1, wxEXPAND, 5 );\r
1743         \r
1744         m_buttonOK = new wxButton( this, wxID_OK, wxT("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1745         bSizer80->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1746         \r
1747         m_buttonCancel = new wxButton( this, wxID_CANCEL, wxT("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1748         bSizer80->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1749         \r
1750         bSizer79->Add( bSizer80, 0, wxEXPAND, 5 );\r
1751         \r
1752         this->SetSizer( bSizer79 );\r
1753         this->Layout();\r
1754         \r
1755         // Connect Events\r
1756         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );\r
1757         m_textCtrl1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1758         m_textCtrl2->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1759         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );\r
1760         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );\r
1761 }\r
1762 \r
1763 CGetTextFromUserDialogBase::~CGetTextFromUserDialogBase()\r
1764 {\r
1765         // Disconnect Events\r
1766         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );\r
1767         m_textCtrl1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1768         m_textCtrl2->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1769         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );\r
1770         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );\r
1771 }\r