Laszlo's fix to make generate threads idle priority on Linux,
[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/about.xpm"\r
11 #include "xpm/addressbook20.xpm"\r
12 #include "xpm/check.xpm"\r
13 #include "xpm/send20.xpm"\r
14 \r
15 ///////////////////////////////////////////////////////////////////////////\r
16 \r
17 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
18 {\r
19         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
20         this->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );\r
21         \r
22         m_menubar = new wxMenuBar( 0 );\r
23         m_menuFile = new wxMenu();\r
24         wxMenuItem* m_menuFileExit;\r
25         m_menuFileExit = new wxMenuItem( m_menuFile, wxID_EXIT, wxString( _("E&xit") ) , wxEmptyString, wxITEM_NORMAL );\r
26         m_menuFile->Append( m_menuFileExit );\r
27         \r
28         m_menubar->Append( m_menuFile, _("&File") );\r
29         \r
30         m_menuOptions = new wxMenu();\r
31         wxMenuItem* m_menuOptionsGenerateBitcoins;\r
32         m_menuOptionsGenerateBitcoins = new wxMenuItem( m_menuOptions, wxID_OPTIONSGENERATEBITCOINS, wxString( _("&Generate Coins") ) , wxEmptyString, wxITEM_CHECK );\r
33         m_menuOptions->Append( m_menuOptionsGenerateBitcoins );\r
34         \r
35         wxMenuItem* m_menuOptionsChangeYourAddress;\r
36         m_menuOptionsChangeYourAddress = new wxMenuItem( m_menuOptions, wxID_ANY, wxString( _("&Your Receiving Addresses...") ) , wxEmptyString, wxITEM_NORMAL );\r
37         m_menuOptions->Append( m_menuOptionsChangeYourAddress );\r
38         \r
39         wxMenuItem* m_menuOptionsOptions;\r
40         m_menuOptionsOptions = new wxMenuItem( m_menuOptions, wxID_PREFERENCES, wxString( _("&Options...") ) , wxEmptyString, wxITEM_NORMAL );\r
41         m_menuOptions->Append( m_menuOptionsOptions );\r
42         \r
43         m_menubar->Append( m_menuOptions, _("&Settings") );\r
44         \r
45         m_menuHelp = new wxMenu();\r
46         wxMenuItem* m_menuHelpAbout;\r
47         m_menuHelpAbout = new wxMenuItem( m_menuHelp, wxID_ABOUT, wxString( _("&About...") ) , wxEmptyString, wxITEM_NORMAL );\r
48         m_menuHelp->Append( m_menuHelpAbout );\r
49         \r
50         m_menubar->Append( m_menuHelp, _("&Help") );\r
51         \r
52         this->SetMenuBar( m_menubar );\r
53         \r
54         m_toolBar = this->CreateToolBar( wxTB_FLAT|wxTB_HORZ_TEXT, wxID_ANY );\r
55         m_toolBar->SetToolBitmapSize( wxSize( 20,20 ) );\r
56         m_toolBar->SetToolSeparation( 1 );\r
57         m_toolBar->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
58         \r
59         m_toolBar->AddTool( wxID_BUTTONSEND, _("Send Coins"), wxBitmap( send20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );\r
60         m_toolBar->AddTool( wxID_BUTTONRECEIVE, _("Address Book"), wxBitmap( addressbook20_xpm ), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString );\r
61         m_toolBar->Realize();\r
62         \r
63         m_statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY );\r
64         m_statusBar->SetBackgroundColour( wxColour( 240, 240, 240 ) );\r
65         \r
66         wxBoxSizer* bSizer2;\r
67         bSizer2 = new wxBoxSizer( wxVERTICAL );\r
68         \r
69         \r
70         bSizer2->Add( 0, 2, 0, wxEXPAND, 5 );\r
71         \r
72         wxBoxSizer* bSizer85;\r
73         bSizer85 = new wxBoxSizer( wxHORIZONTAL );\r
74         \r
75         m_staticText32 = new wxStaticText( this, wxID_ANY, _("Your Bitcoin Address:"), wxDefaultPosition, wxDefaultSize, 0 );\r
76         m_staticText32->Wrap( -1 );\r
77         bSizer85->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );\r
78         \r
79         m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLADDRESS, wxEmptyString, wxDefaultPosition, wxSize( 340,-1 ), wxTE_READONLY );\r
80         bSizer85->Add( m_textCtrlAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );\r
81         \r
82         m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New... "), wxDefaultPosition, wxSize( -1,-1 ), wxBU_EXACTFIT );\r
83         bSizer85->Add( m_buttonNew, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 );\r
84         \r
85         m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT );\r
86         bSizer85->Add( m_buttonCopy, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );\r
87         \r
88         \r
89         bSizer85->Add( 0, 0, 0, wxEXPAND, 5 );\r
90         \r
91         bSizer2->Add( bSizer85, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );\r
92         \r
93         wxBoxSizer* bSizer3;\r
94         bSizer3 = new wxBoxSizer( wxHORIZONTAL );\r
95         \r
96         wxBoxSizer* bSizer66;\r
97         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
98         \r
99         m_staticText41 = new wxStaticText( this, wxID_ANY, _("Balance:"), wxDefaultPosition, wxSize( -1,15 ), 0 );\r
100         m_staticText41->Wrap( -1 );\r
101         bSizer66->Add( m_staticText41, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
102         \r
103         m_staticTextBalance = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 120,15 ), wxALIGN_RIGHT|wxST_NO_AUTORESIZE );\r
104         m_staticTextBalance->Wrap( -1 );\r
105         m_staticTextBalance->SetFont( wxFont( 8, 70, 90, 90, false, wxEmptyString ) );\r
106         m_staticTextBalance->SetBackgroundColour( wxColour( 255, 255, 255 ) );\r
107         \r
108         bSizer66->Add( m_staticTextBalance, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
109         \r
110         bSizer3->Add( bSizer66, 1, wxEXPAND|wxALL, 5 );\r
111         \r
112         \r
113         bSizer3->Add( 0, 0, 0, wxEXPAND, 5 );\r
114         \r
115         wxString m_choiceFilterChoices[] = { _(" All"), _(" Sent"), _(" Received"), _(" In Progress") };\r
116         int m_choiceFilterNChoices = sizeof( m_choiceFilterChoices ) / sizeof( wxString );\r
117         m_choiceFilter = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), m_choiceFilterNChoices, m_choiceFilterChoices, 0 );\r
118         m_choiceFilter->SetSelection( 0 );\r
119         m_choiceFilter->Hide();\r
120         \r
121         bSizer3->Add( m_choiceFilter, 0, wxALIGN_BOTTOM|wxTOP|wxRIGHT|wxLEFT, 5 );\r
122         \r
123         bSizer2->Add( bSizer3, 0, wxEXPAND, 5 );\r
124         \r
125         m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
126         m_panel9 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
127         wxBoxSizer* bSizer11;\r
128         bSizer11 = new wxBoxSizer( wxVERTICAL );\r
129         \r
130         m_listCtrlAll = new wxListCtrl( m_panel9, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );\r
131         bSizer11->Add( m_listCtrlAll, 1, wxEXPAND, 5 );\r
132         \r
133         m_panel9->SetSizer( bSizer11 );\r
134         m_panel9->Layout();\r
135         bSizer11->Fit( m_panel9 );\r
136         m_notebook->AddPage( m_panel9, _("All Transactions"), true );\r
137         m_panel91 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
138         wxBoxSizer* bSizer111;\r
139         bSizer111 = new wxBoxSizer( wxVERTICAL );\r
140         \r
141         m_listCtrlSentReceived = new wxListCtrl( m_panel91, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );\r
142         bSizer111->Add( m_listCtrlSentReceived, 1, wxEXPAND, 5 );\r
143         \r
144         m_panel91->SetSizer( bSizer111 );\r
145         m_panel91->Layout();\r
146         bSizer111->Fit( m_panel91 );\r
147         m_notebook->AddPage( m_panel91, _("Sent/Received"), false );\r
148         m_panel92 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
149         wxBoxSizer* bSizer112;\r
150         bSizer112 = new wxBoxSizer( wxVERTICAL );\r
151         \r
152         m_listCtrlSent = new wxListCtrl( m_panel92, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );\r
153         bSizer112->Add( m_listCtrlSent, 1, wxEXPAND, 5 );\r
154         \r
155         m_panel92->SetSizer( bSizer112 );\r
156         m_panel92->Layout();\r
157         bSizer112->Fit( m_panel92 );\r
158         m_notebook->AddPage( m_panel92, _("Sent"), false );\r
159         m_panel93 = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
160         wxBoxSizer* bSizer113;\r
161         bSizer113 = new wxBoxSizer( wxVERTICAL );\r
162         \r
163         m_listCtrlReceived = new wxListCtrl( m_panel93, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_DESCENDING );\r
164         bSizer113->Add( m_listCtrlReceived, 1, wxEXPAND, 5 );\r
165         \r
166         m_panel93->SetSizer( bSizer113 );\r
167         m_panel93->Layout();\r
168         bSizer113->Fit( m_panel93 );\r
169         m_notebook->AddPage( m_panel93, _("Received"), false );\r
170         \r
171         bSizer2->Add( m_notebook, 1, wxEXPAND, 5 );\r
172         \r
173         this->SetSizer( bSizer2 );\r
174         this->Layout();\r
175         \r
176         // Connect Events\r
177         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );\r
178         this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );\r
179         this->Connect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );\r
180         this->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
181         this->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
182         this->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
183         this->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
184         this->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
185         this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
186         this->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
187         this->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
188         this->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
189         this->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
190         this->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
191         this->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
192         this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
193         this->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );\r
194         this->Connect( m_menuFileExit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );\r
195         this->Connect( m_menuOptionsGenerateBitcoins->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsGenerate ) );\r
196         this->Connect( m_menuOptionsGenerateBitcoins->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIOptionsGenerate ) );\r
197         this->Connect( m_menuOptionsChangeYourAddress->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );\r
198         this->Connect( m_menuOptionsOptions->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );\r
199         this->Connect( m_menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );\r
200         this->Connect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );\r
201         this->Connect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );\r
202         m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );\r
203         m_textCtrlAddress->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
204         m_textCtrlAddress->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
205         m_textCtrlAddress->Connect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
206         m_textCtrlAddress->Connect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
207         m_textCtrlAddress->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
208         m_textCtrlAddress->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
209         m_textCtrlAddress->Connect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
210         m_textCtrlAddress->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
211         m_textCtrlAddress->Connect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
212         m_textCtrlAddress->Connect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
213         m_textCtrlAddress->Connect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
214         m_textCtrlAddress->Connect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
215         m_textCtrlAddress->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
216         m_textCtrlAddress->Connect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );\r
217         m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonNew ), NULL, this );\r
218         m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );\r
219         m_notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CMainFrameBase::OnNotebookPageChanged ), NULL, this );\r
220         m_listCtrlAll->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
221         m_listCtrlAll->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
222         m_listCtrlAll->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
223         m_listCtrlSentReceived->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
224         m_listCtrlSentReceived->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
225         m_listCtrlSentReceived->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
226         m_listCtrlSent->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
227         m_listCtrlSent->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
228         m_listCtrlSent->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
229         m_listCtrlReceived->Connect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
230         m_listCtrlReceived->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
231         m_listCtrlReceived->Connect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
232 }\r
233 \r
234 CMainFrameBase::~CMainFrameBase()\r
235 {\r
236         // Disconnect Events\r
237         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CMainFrameBase::OnClose ) );\r
238         this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( CMainFrameBase::OnIconize ) );\r
239         this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( CMainFrameBase::OnIdle ) );\r
240         this->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
241         this->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
242         this->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
243         this->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
244         this->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
245         this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
246         this->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
247         this->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
248         this->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
249         this->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
250         this->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
251         this->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
252         this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEvents ) );\r
253         this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaint ) );\r
254         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuFileExit ) );\r
255         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsGenerate ) );\r
256         this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( CMainFrameBase::OnUpdateUIOptionsGenerate ) );\r
257         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsChangeYourAddress ) );\r
258         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuOptionsOptions ) );\r
259         this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( CMainFrameBase::OnMenuHelpAbout ) );\r
260         this->Disconnect( wxID_BUTTONSEND, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonSend ) );\r
261         this->Disconnect( wxID_BUTTONRECEIVE, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonAddressBook ) );\r
262         m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CMainFrameBase::OnKeyDown ), NULL, this );\r
263         m_textCtrlAddress->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
264         m_textCtrlAddress->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
265         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
266         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
267         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
268         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
269         m_textCtrlAddress->Disconnect( wxEVT_MOTION, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
270         m_textCtrlAddress->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
271         m_textCtrlAddress->Disconnect( wxEVT_MIDDLE_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
272         m_textCtrlAddress->Disconnect( wxEVT_RIGHT_DCLICK, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
273         m_textCtrlAddress->Disconnect( wxEVT_LEAVE_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
274         m_textCtrlAddress->Disconnect( wxEVT_ENTER_WINDOW, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
275         m_textCtrlAddress->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( CMainFrameBase::OnMouseEventsAddress ), NULL, this );\r
276         m_textCtrlAddress->Disconnect( wxEVT_SET_FOCUS, wxFocusEventHandler( CMainFrameBase::OnSetFocusAddress ), NULL, this );\r
277         m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonNew ), NULL, this );\r
278         m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CMainFrameBase::OnButtonCopy ), NULL, this );\r
279         m_notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CMainFrameBase::OnNotebookPageChanged ), NULL, this );\r
280         m_listCtrlAll->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
281         m_listCtrlAll->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
282         m_listCtrlAll->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
283         m_listCtrlSentReceived->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
284         m_listCtrlSentReceived->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
285         m_listCtrlSentReceived->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
286         m_listCtrlSent->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
287         m_listCtrlSent->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
288         m_listCtrlSent->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
289         m_listCtrlReceived->Disconnect( wxEVT_COMMAND_LIST_COL_BEGIN_DRAG, wxListEventHandler( CMainFrameBase::OnListColBeginDrag ), NULL, this );\r
290         m_listCtrlReceived->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CMainFrameBase::OnListItemActivated ), NULL, this );\r
291         m_listCtrlReceived->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CMainFrameBase::OnPaintListCtrl ), NULL, this );\r
292 }\r
293 \r
294 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
295 {\r
296         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
297         \r
298         wxBoxSizer* bSizer64;\r
299         bSizer64 = new wxBoxSizer( wxVERTICAL );\r
300         \r
301         wxBoxSizer* bSizer66;\r
302         bSizer66 = new wxBoxSizer( wxVERTICAL );\r
303         \r
304         m_htmlWin = new wxHtmlWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO );\r
305         bSizer66->Add( m_htmlWin, 1, wxALL|wxEXPAND, 5 );\r
306         \r
307         bSizer64->Add( bSizer66, 1, wxEXPAND, 5 );\r
308         \r
309         wxBoxSizer* bSizer65;\r
310         bSizer65 = new wxBoxSizer( wxHORIZONTAL );\r
311         \r
312         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
313         bSizer65->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
314         \r
315         bSizer64->Add( bSizer65, 0, wxALIGN_RIGHT, 5 );\r
316         \r
317         this->SetSizer( bSizer64 );\r
318         this->Layout();\r
319         \r
320         // Connect Events\r
321         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );\r
322 }\r
323 \r
324 CTxDetailsDialogBase::~CTxDetailsDialogBase()\r
325 {\r
326         // Disconnect Events\r
327         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CTxDetailsDialogBase::OnButtonOK ), NULL, this );\r
328 }\r
329 \r
330 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
331 {\r
332         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
333         \r
334         wxBoxSizer* bSizer55;\r
335         bSizer55 = new wxBoxSizer( wxVERTICAL );\r
336         \r
337         wxBoxSizer* bSizer66;\r
338         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
339         \r
340         m_listBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxSize( 110,-1 ), 0, NULL, wxLB_NEEDED_SB|wxLB_SINGLE ); \r
341         bSizer66->Add( m_listBox, 0, wxEXPAND|wxRIGHT, 5 );\r
342         \r
343         m_scrolledWindow = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
344         m_scrolledWindow->SetScrollRate( 5, 5 );\r
345         wxBoxSizer* bSizer63;\r
346         bSizer63 = new wxBoxSizer( wxVERTICAL );\r
347         \r
348         m_panelMain = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
349         wxBoxSizer* bSizer69;\r
350         bSizer69 = new wxBoxSizer( wxVERTICAL );\r
351         \r
352         \r
353         bSizer69->Add( 0, 16, 0, wxEXPAND, 5 );\r
354         \r
355         m_staticText32 = new wxStaticText( m_panelMain, wxID_ANY, _("Optional transaction fee you give to the nodes that process your transactions."), wxDefaultPosition, wxDefaultSize, 0 );\r
356         m_staticText32->Wrap( -1 );\r
357         m_staticText32->Hide();\r
358         \r
359         bSizer69->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
360         \r
361         wxBoxSizer* bSizer56;\r
362         bSizer56 = new wxBoxSizer( wxHORIZONTAL );\r
363         \r
364         m_staticText31 = new wxStaticText( m_panelMain, wxID_ANY, _("Transaction fee:"), wxDefaultPosition, wxDefaultSize, 0 );\r
365         m_staticText31->Wrap( -1 );\r
366         m_staticText31->Hide();\r
367         \r
368         bSizer56->Add( m_staticText31, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
369         \r
370         m_textCtrlTransactionFee = new wxTextCtrl( m_panelMain, wxID_TRANSACTIONFEE, wxEmptyString, wxDefaultPosition, wxSize( 70,-1 ), 0 );\r
371         m_textCtrlTransactionFee->Hide();\r
372         \r
373         bSizer56->Add( m_textCtrlTransactionFee, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
374         \r
375         bSizer69->Add( bSizer56, 0, wxEXPAND, 5 );\r
376         \r
377         wxBoxSizer* bSizer71;\r
378         bSizer71 = new wxBoxSizer( wxHORIZONTAL );\r
379         \r
380         m_checkBoxLimitProcessors = new wxCheckBox( m_panelMain, wxID_ANY, _("&Limit coin generation to"), wxDefaultPosition, wxDefaultSize, 0 );\r
381         \r
382         bSizer71->Add( m_checkBoxLimitProcessors, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
383         \r
384         m_spinCtrlLimitProcessors = new wxSpinCtrl( m_panelMain, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 48,-1 ), wxSP_ARROW_KEYS, 1, 999, 1 );\r
385         bSizer71->Add( m_spinCtrlLimitProcessors, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
386         \r
387         m_staticText35 = new wxStaticText( m_panelMain, wxID_ANY, _("processors"), wxDefaultPosition, wxDefaultSize, 0 );\r
388         m_staticText35->Wrap( -1 );\r
389         bSizer71->Add( m_staticText35, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
390         \r
391         bSizer69->Add( bSizer71, 0, 0, 5 );\r
392         \r
393         m_checkBoxStartOnSystemStartup = new wxCheckBox( m_panelMain, wxID_ANY, _("&Start Bitcoin on system startup"), wxDefaultPosition, wxDefaultSize, 0 );\r
394         \r
395         bSizer69->Add( m_checkBoxStartOnSystemStartup, 0, wxALL, 5 );\r
396         \r
397         m_checkBoxMinimizeToTray = new wxCheckBox( m_panelMain, wxID_ANY, _("&Minimize to the tray instead of the taskbar"), wxDefaultPosition, wxDefaultSize, 0 );\r
398         \r
399         bSizer69->Add( m_checkBoxMinimizeToTray, 0, wxALL, 5 );\r
400         \r
401         m_checkBoxMinimizeOnClose = new wxCheckBox( m_panelMain, wxID_ANY, _("M&inimize to the tray on close"), wxDefaultPosition, wxDefaultSize, 0 );\r
402         \r
403         bSizer69->Add( m_checkBoxMinimizeOnClose, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
404         \r
405         wxBoxSizer* bSizer102;\r
406         bSizer102 = new wxBoxSizer( wxHORIZONTAL );\r
407         \r
408         m_checkBoxUseProxy = new wxCheckBox( m_panelMain, wxID_ANY, _("&Connect through socks4 proxy: "), wxDefaultPosition, wxDefaultSize, 0 );\r
409         \r
410         bSizer102->Add( m_checkBoxUseProxy, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
411         \r
412         bSizer69->Add( bSizer102, 1, wxEXPAND, 5 );\r
413         \r
414         wxBoxSizer* bSizer103;\r
415         bSizer103 = new wxBoxSizer( wxHORIZONTAL );\r
416         \r
417         \r
418         bSizer103->Add( 18, 0, 0, 0, 5 );\r
419         \r
420         m_staticTextProxyIP = new wxStaticText( m_panelMain, wxID_ANY, _("Proxy &IP:"), wxDefaultPosition, wxDefaultSize, 0 );\r
421         m_staticTextProxyIP->Wrap( -1 );\r
422         bSizer103->Add( m_staticTextProxyIP, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
423         \r
424         m_textCtrlProxyIP = new wxTextCtrl( m_panelMain, wxID_PROXYIP, wxEmptyString, wxDefaultPosition, wxSize( 140,-1 ), 0 );\r
425         m_textCtrlProxyIP->SetMaxLength( 15 ); \r
426         bSizer103->Add( m_textCtrlProxyIP, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
427         \r
428         m_staticTextProxyPort = new wxStaticText( m_panelMain, wxID_ANY, _(" &Port:"), wxDefaultPosition, wxDefaultSize, 0 );\r
429         m_staticTextProxyPort->Wrap( -1 );\r
430         bSizer103->Add( m_staticTextProxyPort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
431         \r
432         m_textCtrlProxyPort = new wxTextCtrl( m_panelMain, wxID_PROXYPORT, wxEmptyString, wxDefaultPosition, wxSize( 55,-1 ), 0 );\r
433         m_textCtrlProxyPort->SetMaxLength( 5 ); \r
434         bSizer103->Add( m_textCtrlProxyPort, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
435         \r
436         bSizer69->Add( bSizer103, 1, wxEXPAND, 5 );\r
437         \r
438         m_panelMain->SetSizer( bSizer69 );\r
439         m_panelMain->Layout();\r
440         bSizer69->Fit( m_panelMain );\r
441         bSizer63->Add( m_panelMain, 0, wxEXPAND, 5 );\r
442         \r
443         m_panelTest2 = new wxPanel( m_scrolledWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
444         wxBoxSizer* bSizer64;\r
445         bSizer64 = new wxBoxSizer( wxVERTICAL );\r
446         \r
447         \r
448         bSizer64->Add( 0, 16, 0, wxEXPAND, 5 );\r
449         \r
450         m_staticText321 = new wxStaticText( m_panelTest2, wxID_ANY, _("// [don't translate] Test panel 2 for future expansion"), wxDefaultPosition, wxDefaultSize, 0 );\r
451         m_staticText321->Wrap( -1 );\r
452         bSizer64->Add( m_staticText321, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
453         \r
454         m_staticText69 = new wxStaticText( m_panelTest2, wxID_ANY, _("// [don't translate] Let's not start multiple pages until the first page is filled up"), wxDefaultPosition, wxDefaultSize, 0 );\r
455         m_staticText69->Wrap( -1 );\r
456         bSizer64->Add( m_staticText69, 0, wxALL, 5 );\r
457         \r
458         m_panelTest2->SetSizer( bSizer64 );\r
459         m_panelTest2->Layout();\r
460         bSizer64->Fit( m_panelTest2 );\r
461         bSizer63->Add( m_panelTest2, 0, wxEXPAND, 5 );\r
462         \r
463         m_scrolledWindow->SetSizer( bSizer63 );\r
464         m_scrolledWindow->Layout();\r
465         bSizer63->Fit( m_scrolledWindow );\r
466         bSizer66->Add( m_scrolledWindow, 1, wxEXPAND|wxLEFT, 5 );\r
467         \r
468         bSizer55->Add( bSizer66, 1, wxEXPAND|wxALL, 9 );\r
469         \r
470         wxBoxSizer* bSizer58;\r
471         bSizer58 = new wxBoxSizer( wxHORIZONTAL );\r
472         \r
473         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
474         bSizer58->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
475         \r
476         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
477         bSizer58->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
478         \r
479         m_buttonApply = new wxButton( this, wxID_APPLY, _("&Apply"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
480         bSizer58->Add( m_buttonApply, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
481         \r
482         bSizer55->Add( bSizer58, 0, wxALIGN_RIGHT, 5 );\r
483         \r
484         this->SetSizer( bSizer55 );\r
485         this->Layout();\r
486         \r
487         // Connect Events\r
488         m_listBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );\r
489         m_textCtrlTransactionFee->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );\r
490         m_checkBoxLimitProcessors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxLimitProcessors ), NULL, this );\r
491         m_checkBoxMinimizeToTray->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );\r
492         m_checkBoxUseProxy->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );\r
493         m_textCtrlProxyIP->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
494         m_textCtrlProxyPort->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
495         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );\r
496         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );\r
497         m_buttonApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );\r
498 }\r
499 \r
500 COptionsDialogBase::~COptionsDialogBase()\r
501 {\r
502         // Disconnect Events\r
503         m_listBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( COptionsDialogBase::OnListBox ), NULL, this );\r
504         m_textCtrlTransactionFee->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusTransactionFee ), NULL, this );\r
505         m_checkBoxLimitProcessors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxLimitProcessors ), NULL, this );\r
506         m_checkBoxMinimizeToTray->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxMinimizeToTray ), NULL, this );\r
507         m_checkBoxUseProxy->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnCheckBoxUseProxy ), NULL, this );\r
508         m_textCtrlProxyIP->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
509         m_textCtrlProxyPort->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( COptionsDialogBase::OnKillFocusProxy ), NULL, this );\r
510         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonOK ), NULL, this );\r
511         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonCancel ), NULL, this );\r
512         m_buttonApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( COptionsDialogBase::OnButtonApply ), NULL, this );\r
513 }\r
514 \r
515 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
516 {\r
517         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
518         \r
519         wxBoxSizer* bSizer63;\r
520         bSizer63 = new wxBoxSizer( wxHORIZONTAL );\r
521         \r
522         m_bitmap = new wxStaticBitmap( this, wxID_ANY, wxBitmap( about_xpm ), wxDefaultPosition, wxDefaultSize, 0 );\r
523         bSizer63->Add( m_bitmap, 0, 0, 5 );\r
524         \r
525         wxBoxSizer* bSizer60;\r
526         bSizer60 = new wxBoxSizer( wxVERTICAL );\r
527         \r
528         wxBoxSizer* bSizer62;\r
529         bSizer62 = new wxBoxSizer( wxHORIZONTAL );\r
530         \r
531         wxBoxSizer* bSizer631;\r
532         bSizer631 = new wxBoxSizer( wxVERTICAL );\r
533         \r
534         \r
535         bSizer631->Add( 0, 65, 0, wxEXPAND, 5 );\r
536         \r
537         wxBoxSizer* bSizer64;\r
538         bSizer64 = new wxBoxSizer( wxHORIZONTAL );\r
539         \r
540         m_staticText40 = new wxStaticText( this, wxID_ANY, _("Bitcoin "), wxDefaultPosition, wxDefaultSize, 0 );\r
541         m_staticText40->Wrap( -1 );\r
542         m_staticText40->SetFont( wxFont( 10, 74, 90, 92, false, wxT("Tahoma") ) );\r
543         \r
544         bSizer64->Add( m_staticText40, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
545         \r
546         m_staticTextVersion = new wxStaticText( this, wxID_ANY, _("version"), wxDefaultPosition, wxDefaultSize, 0 );\r
547         m_staticTextVersion->Wrap( -1 );\r
548         m_staticTextVersion->SetFont( wxFont( 10, 74, 90, 90, false, wxT("Tahoma") ) );\r
549         \r
550         bSizer64->Add( m_staticTextVersion, 0, wxALIGN_BOTTOM|wxTOP|wxBOTTOM|wxRIGHT, 5 );\r
551         \r
552         bSizer631->Add( bSizer64, 0, wxEXPAND, 5 );\r
553         \r
554         \r
555         bSizer631->Add( 0, 4, 0, wxEXPAND, 5 );\r
556         \r
557         m_staticTextMain = new wxStaticText( this, wxID_ANY, _("Copyright (c) 2009-2010 Satoshi Nakamoto.\n\nThis is experimental software.\n\nDistributed under the MIT/X11 software license, see the accompanying file \nlicense.txt or http://www.opensource.org/licenses/mit-license.php.\n\nThis product includes software developed by the OpenSSL Project for use in the \nOpenSSL Toolkit (http://www.openssl.org/) and cryptographic software written by \nEric Young (eay@cryptsoft.com)."), wxDefaultPosition, wxDefaultSize, 0 );\r
558         m_staticTextMain->Wrap( -1 );\r
559         bSizer631->Add( m_staticTextMain, 0, wxALL, 5 );\r
560         \r
561         \r
562         bSizer631->Add( 0, 0, 0, wxEXPAND, 5 );\r
563         \r
564         bSizer62->Add( bSizer631, 1, wxEXPAND, 5 );\r
565         \r
566         bSizer60->Add( bSizer62, 1, wxEXPAND, 5 );\r
567         \r
568         wxBoxSizer* bSizer61;\r
569         bSizer61 = new wxBoxSizer( wxHORIZONTAL );\r
570         \r
571         \r
572         bSizer61->Add( 0, 0, 1, wxEXPAND, 5 );\r
573         \r
574         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
575         bSizer61->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 6 );\r
576         \r
577         bSizer60->Add( bSizer61, 0, wxALIGN_RIGHT|wxEXPAND|wxRIGHT, 2 );\r
578         \r
579         bSizer63->Add( bSizer60, 1, wxEXPAND|wxLEFT, 5 );\r
580         \r
581         this->SetSizer( bSizer63 );\r
582         this->Layout();\r
583         \r
584         // Connect Events\r
585         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );\r
586 }\r
587 \r
588 CAboutDialogBase::~CAboutDialogBase()\r
589 {\r
590         // Disconnect Events\r
591         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAboutDialogBase::OnButtonOK ), NULL, this );\r
592 }\r
593 \r
594 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
595 {\r
596         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
597         \r
598         wxBoxSizer* bSizer21;\r
599         bSizer21 = new wxBoxSizer( wxVERTICAL );\r
600         \r
601         \r
602         bSizer21->Add( 0, 5, 0, wxEXPAND, 5 );\r
603         \r
604         wxFlexGridSizer* fgSizer1;\r
605         fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0 );\r
606         fgSizer1->AddGrowableCol( 1 );\r
607         fgSizer1->SetFlexibleDirection( wxBOTH );\r
608         fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );\r
609         \r
610         \r
611         fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );\r
612         \r
613         m_staticTextInstructions = new wxStaticText( this, wxID_ANY, _("Enter a Bitcoin address (e.g. 1NS17iag9jJgTHD1VXjvLCEnZuQ3rJED9L) or IP address (e.g. 123.45.6.7)"), wxDefaultPosition, wxDefaultSize, 0 );\r
614         m_staticTextInstructions->Wrap( -1 );\r
615         fgSizer1->Add( m_staticTextInstructions, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
616         \r
617         wxBoxSizer* bSizer47;\r
618         bSizer47 = new wxBoxSizer( wxHORIZONTAL );\r
619         \r
620         bSizer47->SetMinSize( wxSize( 70,-1 ) ); \r
621         \r
622         bSizer47->Add( 0, 0, 1, wxEXPAND, 5 );\r
623         \r
624         m_bitmapCheckMark = new wxStaticBitmap( this, wxID_ANY, wxBitmap( check_xpm ), wxDefaultPosition, wxSize( 16,16 ), 0 );\r
625         bSizer47->Add( m_bitmapCheckMark, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );\r
626         \r
627         m_staticText36 = new wxStaticText( this, wxID_ANY, _("Pay &To:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
628         m_staticText36->Wrap( -1 );\r
629         bSizer47->Add( m_staticText36, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
630         \r
631         fgSizer1->Add( bSizer47, 1, wxEXPAND|wxLEFT, 5 );\r
632         \r
633         wxBoxSizer* bSizer19;\r
634         bSizer19 = new wxBoxSizer( wxHORIZONTAL );\r
635         \r
636         m_textCtrlAddress = new wxTextCtrl( this, wxID_TEXTCTRLPAYTO, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
637         bSizer19->Add( m_textCtrlAddress, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
638         \r
639         wxBoxSizer* bSizer66;\r
640         bSizer66 = new wxBoxSizer( wxHORIZONTAL );\r
641         \r
642         m_buttonPaste = new wxButton( this, wxID_BUTTONPASTE, _("&Paste"), wxDefaultPosition, wxSize( -1,-1 ), wxBU_EXACTFIT );\r
643         bSizer66->Add( m_buttonPaste, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );\r
644         \r
645         m_buttonAddress = new wxButton( this, wxID_BUTTONADDRESSBOOK, _(" Address &Book..."), wxDefaultPosition, wxDefaultSize, 0 );\r
646         bSizer66->Add( m_buttonAddress, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, 5 );\r
647         \r
648         bSizer19->Add( bSizer66, 0, wxALIGN_CENTER_VERTICAL, 5 );\r
649         \r
650         fgSizer1->Add( bSizer19, 1, wxEXPAND|wxRIGHT, 5 );\r
651         \r
652         m_staticText19 = new wxStaticText( this, wxID_ANY, _("&Amount:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
653         m_staticText19->Wrap( -1 );\r
654         fgSizer1->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_RIGHT, 5 );\r
655         \r
656         m_textCtrlAmount = new wxTextCtrl( this, wxID_TEXTCTRLAMOUNT, wxEmptyString, wxDefaultPosition, wxSize( 145,-1 ), 0 );\r
657         m_textCtrlAmount->SetMaxLength( 20 ); \r
658         m_textCtrlAmount->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
659         \r
660         fgSizer1->Add( m_textCtrlAmount, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
661         \r
662         m_staticText20 = new wxStaticText( this, wxID_ANY, _("T&ransfer:"), wxDefaultPosition, wxSize( -1,-1 ), wxALIGN_RIGHT );\r
663         m_staticText20->Wrap( -1 );\r
664         m_staticText20->Hide();\r
665         \r
666         fgSizer1->Add( m_staticText20, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 );\r
667         \r
668         wxString m_choiceTransferTypeChoices[] = { _(" Standard") };\r
669         int m_choiceTransferTypeNChoices = sizeof( m_choiceTransferTypeChoices ) / sizeof( wxString );\r
670         m_choiceTransferType = new wxChoice( this, wxID_CHOICETRANSFERTYPE, wxDefaultPosition, wxDefaultSize, m_choiceTransferTypeNChoices, m_choiceTransferTypeChoices, 0 );\r
671         m_choiceTransferType->SetSelection( 0 );\r
672         m_choiceTransferType->Hide();\r
673         \r
674         fgSizer1->Add( m_choiceTransferType, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );\r
675         \r
676         \r
677         fgSizer1->Add( 0, 3, 0, wxEXPAND, 5 );\r
678         \r
679         \r
680         fgSizer1->Add( 0, 0, 0, wxEXPAND, 5 );\r
681         \r
682         bSizer21->Add( fgSizer1, 0, wxEXPAND|wxLEFT, 5 );\r
683         \r
684         wxBoxSizer* bSizer672;\r
685         bSizer672 = new wxBoxSizer( wxHORIZONTAL );\r
686         \r
687         wxBoxSizer* bSizer681;\r
688         bSizer681 = new wxBoxSizer( wxVERTICAL );\r
689         \r
690         m_staticTextFrom = new wxStaticText( this, wxID_ANY, _("&From:"), wxDefaultPosition, wxDefaultSize, 0 );\r
691         m_staticTextFrom->Wrap( -1 );\r
692         bSizer681->Add( m_staticTextFrom, 0, wxBOTTOM|wxLEFT, 5 );\r
693         \r
694         m_textCtrlFrom = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
695         bSizer681->Add( m_textCtrlFrom, 0, wxLEFT|wxEXPAND, 5 );\r
696         \r
697         bSizer672->Add( bSizer681, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );\r
698         \r
699         bSizer21->Add( bSizer672, 0, wxEXPAND, 5 );\r
700         \r
701         wxBoxSizer* bSizer67;\r
702         bSizer67 = new wxBoxSizer( wxHORIZONTAL );\r
703         \r
704         wxBoxSizer* bSizer68;\r
705         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
706         \r
707         m_staticTextMessage = new wxStaticText( this, wxID_ANY, _("&Message:"), wxDefaultPosition, wxDefaultSize, 0 );\r
708         m_staticTextMessage->Wrap( -1 );\r
709         bSizer68->Add( m_staticTextMessage, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );\r
710         \r
711         m_textCtrlMessage = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE );\r
712         bSizer68->Add( m_textCtrlMessage, 1, wxEXPAND|wxLEFT, 5 );\r
713         \r
714         bSizer67->Add( bSizer68, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );\r
715         \r
716         bSizer21->Add( bSizer67, 1, wxEXPAND, 5 );\r
717         \r
718         wxBoxSizer* bSizer23;\r
719         bSizer23 = new wxBoxSizer( wxHORIZONTAL );\r
720         \r
721         \r
722         bSizer23->Add( 0, 0, 1, wxEXPAND, 5 );\r
723         \r
724         m_buttonSend = new wxButton( this, wxID_BUTTONSEND, _("&Send"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
725         m_buttonSend->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 90, false, wxEmptyString ) );\r
726         \r
727         bSizer23->Add( m_buttonSend, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
728         \r
729         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
730         bSizer23->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
731         \r
732         bSizer21->Add( bSizer23, 0, wxEXPAND, 5 );\r
733         \r
734         this->SetSizer( bSizer21 );\r
735         this->Layout();\r
736         \r
737         // Connect Events\r
738         m_textCtrlAddress->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
739         m_textCtrlAddress->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );\r
740         m_buttonPaste->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );\r
741         m_buttonAddress->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );\r
742         m_textCtrlAmount->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
743         m_textCtrlAmount->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );\r
744         m_textCtrlFrom->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
745         m_textCtrlMessage->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
746         m_buttonSend->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );\r
747         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );\r
748 }\r
749 \r
750 CSendDialogBase::~CSendDialogBase()\r
751 {\r
752         // Disconnect Events\r
753         m_textCtrlAddress->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
754         m_textCtrlAddress->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( CSendDialogBase::OnTextAddress ), NULL, this );\r
755         m_buttonPaste->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonPaste ), NULL, this );\r
756         m_buttonAddress->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonAddressBook ), NULL, this );\r
757         m_textCtrlAmount->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
758         m_textCtrlAmount->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( CSendDialogBase::OnKillFocusAmount ), NULL, this );\r
759         m_textCtrlFrom->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
760         m_textCtrlMessage->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CSendDialogBase::OnKeyDown ), NULL, this );\r
761         m_buttonSend->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonSend ), NULL, this );\r
762         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendDialogBase::OnButtonCancel ), NULL, this );\r
763 }\r
764 \r
765 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
766 {\r
767         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
768         \r
769         wxBoxSizer* bSizer68;\r
770         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
771         \r
772         m_staticTextSending = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,14 ), 0 );\r
773         m_staticTextSending->Wrap( -1 );\r
774         bSizer68->Add( m_staticTextSending, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 8 );\r
775         \r
776         m_textCtrlStatus = new wxTextCtrl( this, wxID_ANY, _("\n\nConnecting..."), wxDefaultPosition, wxDefaultSize, wxTE_CENTRE|wxTE_MULTILINE|wxTE_NO_VSCROLL|wxTE_READONLY|wxNO_BORDER );\r
777         m_textCtrlStatus->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );\r
778         \r
779         bSizer68->Add( m_textCtrlStatus, 1, wxEXPAND|wxRIGHT|wxLEFT, 10 );\r
780         \r
781         wxBoxSizer* bSizer69;\r
782         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
783         \r
784         \r
785         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
786         \r
787         m_buttonOK = new wxButton( this, wxID_ANY, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );\r
788         m_buttonOK->Enable( false );\r
789         \r
790         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
791         \r
792         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
793         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
794         \r
795         bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );\r
796         \r
797         this->SetSizer( bSizer68 );\r
798         this->Layout();\r
799         \r
800         // Connect Events\r
801         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );\r
802         this->Connect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );\r
803         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );\r
804         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );\r
805 }\r
806 \r
807 CSendingDialogBase::~CSendingDialogBase()\r
808 {\r
809         // Disconnect Events\r
810         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CSendingDialogBase::OnClose ) );\r
811         this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( CSendingDialogBase::OnPaint ) );\r
812         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonOK ), NULL, this );\r
813         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CSendingDialogBase::OnButtonCancel ), NULL, this );\r
814 }\r
815 \r
816 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
817 {\r
818         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
819         \r
820         wxBoxSizer* bSizer68;\r
821         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
822         \r
823         \r
824         bSizer68->Add( 0, 5, 0, wxEXPAND, 5 );\r
825         \r
826         m_staticText45 = new wxStaticText( this, wxID_ANY, _("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
827         m_staticText45->Wrap( 590 );\r
828         bSizer68->Add( m_staticText45, 0, wxALL, 5 );\r
829         \r
830         m_listCtrl = new wxListCtrl( this, wxID_LISTCTRL, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );\r
831         bSizer68->Add( m_listCtrl, 1, wxALL|wxEXPAND, 5 );\r
832         \r
833         wxBoxSizer* bSizer69;\r
834         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
835         \r
836         \r
837         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
838         \r
839         m_buttonRename = new wxButton( this, wxID_BUTTONRENAME, _("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );\r
840         bSizer69->Add( m_buttonRename, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
841         \r
842         m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New Address... "), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
843         bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
844         \r
845         m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
846         bSizer69->Add( m_buttonCopy, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
847         \r
848         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );\r
849         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
850         \r
851         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
852         m_buttonCancel->Hide();\r
853         \r
854         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
855         \r
856         bSizer68->Add( bSizer69, 0, wxEXPAND, 5 );\r
857         \r
858         this->SetSizer( bSizer68 );\r
859         this->Layout();\r
860         \r
861         // Connect Events\r
862         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );\r
863         m_listCtrl->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );\r
864         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );\r
865         m_listCtrl->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );\r
866         m_buttonRename->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );\r
867         m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );\r
868         m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );\r
869         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );\r
870         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );\r
871 }\r
872 \r
873 CYourAddressDialogBase::~CYourAddressDialogBase()\r
874 {\r
875         // Disconnect Events\r
876         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CYourAddressDialogBase::OnClose ) );\r
877         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CYourAddressDialogBase::OnListEndLabelEdit ), NULL, this );\r
878         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CYourAddressDialogBase::OnListItemActivated ), NULL, this );\r
879         m_listCtrl->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CYourAddressDialogBase::OnListItemSelected ), NULL, this );\r
880         m_buttonRename->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonRename ), NULL, this );\r
881         m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonNew ), NULL, this );\r
882         m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCopy ), NULL, this );\r
883         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonOK ), NULL, this );\r
884         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CYourAddressDialogBase::OnButtonCancel ), NULL, this );\r
885 }\r
886 \r
887 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
888 {\r
889         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
890         \r
891         wxBoxSizer* bSizer58;\r
892         bSizer58 = new wxBoxSizer( wxVERTICAL );\r
893         \r
894         m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );\r
895         m_panelSending = new wxPanel( m_notebook, wxID_PANELSENDING, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
896         wxBoxSizer* bSizer68;\r
897         bSizer68 = new wxBoxSizer( wxVERTICAL );\r
898         \r
899         \r
900         bSizer68->Add( 0, 0, 0, wxEXPAND, 5 );\r
901         \r
902         m_staticText55 = new wxStaticText( m_panelSending, wxID_ANY, _("Bitcoin Address"), wxDefaultPosition, wxDefaultSize, 0 );\r
903         m_staticText55->Wrap( -1 );\r
904         m_staticText55->Hide();\r
905         \r
906         bSizer68->Add( m_staticText55, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
907         \r
908         m_listCtrlSending = new wxListCtrl( m_panelSending, wxID_LISTCTRLSENDING, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );\r
909         bSizer68->Add( m_listCtrlSending, 1, wxALL|wxEXPAND, 5 );\r
910         \r
911         m_panelSending->SetSizer( bSizer68 );\r
912         m_panelSending->Layout();\r
913         bSizer68->Fit( m_panelSending );\r
914         m_notebook->AddPage( m_panelSending, _("Sending"), false );\r
915         m_panelReceiving = new wxPanel( m_notebook, wxID_PANELRECEIVING, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );\r
916         wxBoxSizer* bSizer681;\r
917         bSizer681 = new wxBoxSizer( wxVERTICAL );\r
918         \r
919         \r
920         bSizer681->Add( 0, 0, 0, wxEXPAND, 5 );\r
921         \r
922         m_staticText45 = new wxStaticText( m_panelReceiving, wxID_ANY, _("These are your Bitcoin addresses for receiving payments.  You can give a different one to each sender to keep track of who is paying you.  The highlighted address will be displayed in the main window."), wxDefaultPosition, wxDefaultSize, 0 );\r
923         m_staticText45->Wrap( 570 );\r
924         bSizer681->Add( m_staticText45, 0, wxTOP|wxRIGHT|wxLEFT, 6 );\r
925         \r
926         \r
927         bSizer681->Add( 0, 2, 0, wxEXPAND, 5 );\r
928         \r
929         m_listCtrlReceiving = new wxListCtrl( m_panelReceiving, wxID_LISTCTRLRECEIVING, wxDefaultPosition, wxDefaultSize, wxLC_NO_SORT_HEADER|wxLC_REPORT|wxLC_SORT_ASCENDING );\r
930         bSizer681->Add( m_listCtrlReceiving, 1, wxALL|wxEXPAND, 5 );\r
931         \r
932         m_panelReceiving->SetSizer( bSizer681 );\r
933         m_panelReceiving->Layout();\r
934         bSizer681->Fit( m_panelReceiving );\r
935         m_notebook->AddPage( m_panelReceiving, _("Receiving"), true );\r
936         \r
937         bSizer58->Add( m_notebook, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 );\r
938         \r
939         wxBoxSizer* bSizer69;\r
940         bSizer69 = new wxBoxSizer( wxHORIZONTAL );\r
941         \r
942         \r
943         bSizer69->Add( 0, 0, 1, wxEXPAND, 5 );\r
944         \r
945         m_buttonDelete = new wxButton( this, wxID_BUTTONDELETE, _("&Delete"), wxDefaultPosition, wxDefaultSize, 0 );\r
946         bSizer69->Add( m_buttonDelete, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
947         \r
948         m_buttonCopy = new wxButton( this, wxID_BUTTONCOPY, _(" &Copy to Clipboard "), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
949         bSizer69->Add( m_buttonCopy, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
950         \r
951         m_buttonEdit = new wxButton( this, wxID_BUTTONEDIT, _("&Edit..."), wxDefaultPosition, wxDefaultSize, 0 );\r
952         bSizer69->Add( m_buttonEdit, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
953         \r
954         m_buttonNew = new wxButton( this, wxID_BUTTONNEW, _(" &New Address... "), wxDefaultPosition, wxDefaultSize, 0 );\r
955         bSizer69->Add( m_buttonNew, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
956         \r
957         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
958         bSizer69->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
959         \r
960         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
961         bSizer69->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
962         \r
963         bSizer58->Add( bSizer69, 0, wxEXPAND, 5 );\r
964         \r
965         this->SetSizer( bSizer58 );\r
966         this->Layout();\r
967         \r
968         // Connect Events\r
969         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );\r
970         m_notebook->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CAddressBookDialogBase::OnNotebookPageChanged ), NULL, this );\r
971         m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
972         m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
973         m_listCtrlSending->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
974         m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
975         m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
976         m_listCtrlReceiving->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
977         m_buttonDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );\r
978         m_buttonCopy->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCopy ), NULL, this );\r
979         m_buttonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );\r
980         m_buttonNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );\r
981         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );\r
982         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );\r
983 }\r
984 \r
985 CAddressBookDialogBase::~CAddressBookDialogBase()\r
986 {\r
987         // Disconnect Events\r
988         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CAddressBookDialogBase::OnClose ) );\r
989         m_notebook->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( CAddressBookDialogBase::OnNotebookPageChanged ), NULL, this );\r
990         m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
991         m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
992         m_listCtrlSending->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
993         m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_END_LABEL_EDIT, wxListEventHandler( CAddressBookDialogBase::OnListEndLabelEdit ), NULL, this );\r
994         m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, wxListEventHandler( CAddressBookDialogBase::OnListItemActivated ), NULL, this );\r
995         m_listCtrlReceiving->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( CAddressBookDialogBase::OnListItemSelected ), NULL, this );\r
996         m_buttonDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonDelete ), NULL, this );\r
997         m_buttonCopy->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCopy ), NULL, this );\r
998         m_buttonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonEdit ), NULL, this );\r
999         m_buttonNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonNew ), NULL, this );\r
1000         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonOK ), NULL, this );\r
1001         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CAddressBookDialogBase::OnButtonCancel ), NULL, this );\r
1002 }\r
1003 \r
1004 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
1005 {\r
1006         this->SetSizeHints( wxDefaultSize, wxDefaultSize );\r
1007         \r
1008         wxBoxSizer* bSizer79;\r
1009         bSizer79 = new wxBoxSizer( wxVERTICAL );\r
1010         \r
1011         wxBoxSizer* bSizer81;\r
1012         bSizer81 = new wxBoxSizer( wxVERTICAL );\r
1013         \r
1014         \r
1015         bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );\r
1016         \r
1017         m_staticTextMessage1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1018         m_staticTextMessage1->Wrap( -1 );\r
1019         bSizer81->Add( m_staticTextMessage1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1020         \r
1021         m_textCtrl1 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );\r
1022         bSizer81->Add( m_textCtrl1, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );\r
1023         \r
1024         m_staticTextMessage2 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );\r
1025         m_staticTextMessage2->Wrap( -1 );\r
1026         m_staticTextMessage2->Hide();\r
1027         \r
1028         bSizer81->Add( m_staticTextMessage2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );\r
1029         \r
1030         m_textCtrl2 = new wxTextCtrl( this, wxID_TEXTCTRL, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER );\r
1031         m_textCtrl2->Hide();\r
1032         \r
1033         bSizer81->Add( m_textCtrl2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 );\r
1034         \r
1035         \r
1036         bSizer81->Add( 0, 0, 1, wxEXPAND, 5 );\r
1037         \r
1038         bSizer79->Add( bSizer81, 1, wxEXPAND|wxALL, 10 );\r
1039         \r
1040         wxBoxSizer* bSizer80;\r
1041         bSizer80 = new wxBoxSizer( wxHORIZONTAL );\r
1042         \r
1043         \r
1044         bSizer80->Add( 0, 0, 1, wxEXPAND, 5 );\r
1045         \r
1046         m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxSize( -1,-1 ), 0 );\r
1047         bSizer80->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1048         \r
1049         m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );\r
1050         bSizer80->Add( m_buttonCancel, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 );\r
1051         \r
1052         bSizer79->Add( bSizer80, 0, wxEXPAND, 5 );\r
1053         \r
1054         this->SetSizer( bSizer79 );\r
1055         this->Layout();\r
1056         \r
1057         // Connect Events\r
1058         this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );\r
1059         m_textCtrl1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1060         m_textCtrl2->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1061         m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );\r
1062         m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );\r
1063 }\r
1064 \r
1065 CGetTextFromUserDialogBase::~CGetTextFromUserDialogBase()\r
1066 {\r
1067         // Disconnect Events\r
1068         this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( CGetTextFromUserDialogBase::OnClose ) );\r
1069         m_textCtrl1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1070         m_textCtrl2->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( CGetTextFromUserDialogBase::OnKeyDown ), NULL, this );\r
1071         m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonOK ), NULL, this );\r
1072         m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CGetTextFromUserDialogBase::OnButtonCancel ), NULL, this );\r
1073 }\r