2010-08-29 18:58:15 +02:00
|
|
|
///////////////////////////////////////////////////////////////////////////
|
2011-03-13 18:35:39 +01:00
|
|
|
// C++ code generated with wxFormBuilder (version Dec 21 2009)
|
2010-08-29 18:58:15 +02:00
|
|
|
// http://www.wxformbuilder.org/
|
|
|
|
//
|
|
|
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#ifndef __uibase__
|
|
|
|
#define __uibase__
|
|
|
|
|
|
|
|
#include <wx/intl.h>
|
|
|
|
|
|
|
|
#include <wx/string.h>
|
|
|
|
#include <wx/bitmap.h>
|
|
|
|
#include <wx/image.h>
|
|
|
|
#include <wx/icon.h>
|
|
|
|
#include <wx/menu.h>
|
|
|
|
#include <wx/gdicmn.h>
|
|
|
|
#include <wx/font.h>
|
|
|
|
#include <wx/colour.h>
|
|
|
|
#include <wx/settings.h>
|
|
|
|
#include <wx/toolbar.h>
|
|
|
|
#include <wx/statusbr.h>
|
|
|
|
#include <wx/stattext.h>
|
|
|
|
#include <wx/textctrl.h>
|
|
|
|
#include <wx/button.h>
|
|
|
|
#include <wx/sizer.h>
|
|
|
|
#include <wx/choice.h>
|
|
|
|
#include <wx/listctrl.h>
|
|
|
|
#include <wx/panel.h>
|
|
|
|
#include <wx/notebook.h>
|
|
|
|
#include <wx/frame.h>
|
|
|
|
#include <wx/html/htmlwin.h>
|
|
|
|
#include <wx/dialog.h>
|
|
|
|
#include <wx/listbox.h>
|
|
|
|
#include <wx/checkbox.h>
|
|
|
|
#include <wx/scrolwin.h>
|
|
|
|
#include <wx/statbmp.h>
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
#define wxID_MAINFRAME 1000
|
2011-05-05 14:56:24 +02:00
|
|
|
#define wxID_BUTTONSEND 1001
|
|
|
|
#define wxID_BUTTONRECEIVE 1002
|
|
|
|
#define wxID_TEXTCTRLADDRESS 1003
|
|
|
|
#define wxID_BUTTONNEW 1004
|
|
|
|
#define wxID_BUTTONCOPY 1005
|
|
|
|
#define wxID_PROXYIP 1006
|
|
|
|
#define wxID_PROXYPORT 1007
|
|
|
|
#define wxID_TRANSACTIONFEE 1008
|
|
|
|
#define wxID_TEXTCTRLPAYTO 1009
|
|
|
|
#define wxID_BUTTONPASTE 1010
|
|
|
|
#define wxID_BUTTONADDRESSBOOK 1011
|
|
|
|
#define wxID_TEXTCTRLAMOUNT 1012
|
|
|
|
#define wxID_CHOICETRANSFERTYPE 1013
|
|
|
|
#define wxID_LISTCTRL 1014
|
|
|
|
#define wxID_BUTTONRENAME 1015
|
|
|
|
#define wxID_PANELSENDING 1016
|
|
|
|
#define wxID_LISTCTRLSENDING 1017
|
|
|
|
#define wxID_PANELRECEIVING 1018
|
|
|
|
#define wxID_LISTCTRLRECEIVING 1019
|
|
|
|
#define wxID_BUTTONDELETE 1020
|
|
|
|
#define wxID_BUTTONEDIT 1021
|
|
|
|
#define wxID_TEXTCTRL 1022
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CMainFrameBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CMainFrameBase : public wxFrame
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxMenuBar* m_menubar;
|
|
|
|
wxMenu* m_menuFile;
|
|
|
|
wxMenu* m_menuHelp;
|
|
|
|
wxToolBar* m_toolBar;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText32;
|
|
|
|
wxButton* m_buttonNew;
|
|
|
|
wxButton* m_buttonCopy;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText41;
|
|
|
|
wxStaticText* m_staticTextBalance;
|
|
|
|
|
|
|
|
wxChoice* m_choiceFilter;
|
|
|
|
wxNotebook* m_notebook;
|
|
|
|
wxPanel* m_panel9;
|
|
|
|
wxPanel* m_panel91;
|
|
|
|
wxPanel* m_panel92;
|
|
|
|
wxPanel* m_panel93;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMouseEvents( wxMouseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMenuFileExit( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMenuOptionsChangeYourAddress( wxCommandEvent& event ) { event.Skip(); }
|
Add wallet privkey encryption.
This commit adds support for ckeys, or enCrypted private keys, to the wallet.
All keys are stored in memory in their encrypted form and thus the passphrase
is required from the user to spend coins, or to create new addresses.
Keys are encrypted with AES-256-CBC using OpenSSL's EVP library. The key is
calculated via EVP_BytesToKey using SHA512 with (by default) 25000 rounds and
a random salt.
By default, the user's wallet remains unencrypted until they call the RPC
command encryptwallet <passphrase> or, from the GUI menu, Options->
Encrypt Wallet.
When the user is attempting to call RPC functions which require the password
to unlock the wallet, an error will be returned unless they call
walletpassphrase <passphrase> <time to keep key in memory> first.
A keypoolrefill command has been added which tops up the users keypool
(requiring the passphrase via walletpassphrase first).
keypoolsize has been added to the output of getinfo to show the user the
number of keys left before they need to specify their passphrase (and call
keypoolrefill).
Note that walletpassphrase will automatically fill keypool in a separate
thread which it spawns when the passphrase is set. This could cause some
delays in other threads waiting for locks on the wallet passphrase, including
one which could cause the passphrase to be stored longer than expected,
however it will not allow the passphrase to be used longer than expected as
ThreadCleanWalletPassphrase will attempt to get a lock on the key as soon
as the specified lock time has arrived.
When the keypool runs out (and wallet is locked) GetOrReuseKeyFromPool
returns vchDefaultKey, meaning miners may start to generate many blocks to
vchDefaultKey instead of a new key each time.
A walletpassphrasechange <oldpassphrase> <newpassphrase> has been added to
allow the user to change their password via RPC.
Whenever keying material (unencrypted private keys, the user's passphrase,
the wallet's AES key) is stored unencrypted in memory, any reasonable attempt
is made to mlock/VirtualLock that memory before storing the keying material.
This is not true in several (commented) cases where mlock/VirtualLocking the
memory is not possible.
Although encryption of private keys in memory can be very useful on desktop
systems (as some small amount of protection against stupid viruses), on an
RPC server, the password is entered fairly insecurely. Thus, the only main
advantage encryption has for RPC servers is for RPC servers that do not spend
coins, except in rare cases, eg. a webserver of a merchant which only receives
payment except for cases of manual intervention.
Thanks to jgarzik for the original patch and sipa, gmaxwell and many others
for all their input.
Conflicts:
src/wallet.cpp
2011-07-08 15:47:35 +02:00
|
|
|
virtual void OnMenuOptionsEncryptWallet( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMenuOptionsChangeWalletPassphrase( wxCommandEvent& event ) { event.Skip(); }
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnMenuOptionsOptions( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMenuHelpAbout( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnMouseEventsAddress( wxMouseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnSetFocusAddress( wxFocusEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListColBeginDrag( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnPaintListCtrl( wxPaintEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
wxMenu* m_menuOptions;
|
2011-06-29 01:08:48 +02:00
|
|
|
wxMenuItem* m_menuOptionsEncryptWallet;
|
|
|
|
wxMenuItem* m_menuOptionsChangeWalletPassphrase;
|
2010-08-29 18:58:15 +02:00
|
|
|
wxStatusBar* m_statusBar;
|
|
|
|
wxTextCtrl* m_textCtrlAddress;
|
|
|
|
wxListCtrl* m_listCtrlAll;
|
|
|
|
wxListCtrl* m_listCtrlSentReceived;
|
|
|
|
wxListCtrl* m_listCtrlSent;
|
|
|
|
wxListCtrl* m_listCtrlReceived;
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CMainFrameBase( wxWindow* parent, wxWindowID id = wxID_MAINFRAME, const wxString& title = _("Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 723,484 ), long style = wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER|wxTAB_TRAVERSAL );
|
|
|
|
~CMainFrameBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CTxDetailsDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CTxDetailsDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxHtmlWindow* m_htmlWin;
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CTxDetailsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Transaction Details"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 620,450 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
|
|
|
~CTxDetailsDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class COptionsDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class COptionsDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxListBox* m_listBox;
|
|
|
|
wxScrolledWindow* m_scrolledWindow;
|
|
|
|
wxPanel* m_panelMain;
|
|
|
|
|
|
|
|
wxCheckBox* m_checkBoxStartOnSystemStartup;
|
|
|
|
wxCheckBox* m_checkBoxMinimizeToTray;
|
2011-03-26 13:01:27 +01:00
|
|
|
wxCheckBox* m_checkBoxUseUPnP;
|
2010-08-29 18:58:15 +02:00
|
|
|
wxCheckBox* m_checkBoxMinimizeOnClose;
|
|
|
|
wxCheckBox* m_checkBoxUseProxy;
|
|
|
|
|
|
|
|
wxStaticText* m_staticTextProxyIP;
|
|
|
|
wxTextCtrl* m_textCtrlProxyIP;
|
|
|
|
wxStaticText* m_staticTextProxyPort;
|
|
|
|
wxTextCtrl* m_textCtrlProxyPort;
|
2010-11-21 23:46:19 +01:00
|
|
|
|
|
|
|
wxStaticText* m_staticText32;
|
|
|
|
wxStaticText* m_staticText31;
|
|
|
|
wxTextCtrl* m_textCtrlTransactionFee;
|
2010-08-29 18:58:15 +02:00
|
|
|
wxPanel* m_panelTest2;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText321;
|
|
|
|
wxStaticText* m_staticText69;
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
wxButton* m_buttonCancel;
|
|
|
|
wxButton* m_buttonApply;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnListBox( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnCheckBoxMinimizeToTray( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnCheckBoxUseProxy( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnKillFocusProxy( wxFocusEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnKillFocusTransactionFee( wxFocusEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonApply( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
COptionsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 540,360 ), long style = wxDEFAULT_DIALOG_STYLE );
|
|
|
|
~COptionsDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CAboutDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CAboutDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxStaticBitmap* m_bitmap;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText40;
|
|
|
|
|
|
|
|
wxStaticText* m_staticTextMain;
|
|
|
|
|
|
|
|
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
wxStaticText* m_staticTextVersion;
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CAboutDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("About Bitcoin"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 532,333 ), long style = wxDEFAULT_DIALOG_STYLE );
|
|
|
|
~CAboutDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CSendDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CSendDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
wxStaticText* m_staticTextInstructions;
|
|
|
|
|
|
|
|
wxStaticBitmap* m_bitmapCheckMark;
|
|
|
|
wxStaticText* m_staticText36;
|
|
|
|
wxTextCtrl* m_textCtrlAddress;
|
|
|
|
wxButton* m_buttonPaste;
|
|
|
|
wxButton* m_buttonAddress;
|
|
|
|
wxStaticText* m_staticText19;
|
|
|
|
wxTextCtrl* m_textCtrlAmount;
|
|
|
|
wxStaticText* m_staticText20;
|
|
|
|
wxChoice* m_choiceTransferType;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wxButton* m_buttonSend;
|
|
|
|
wxButton* m_buttonCancel;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnTextAddress( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonPaste( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonAddressBook( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnKillFocusAmount( wxFocusEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonSend( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
|
|
|
CSendDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Send Coins"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 498,157 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
2010-08-29 18:58:15 +02:00
|
|
|
~CSendDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CSendingDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CSendingDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxStaticText* m_staticTextSending;
|
|
|
|
wxTextCtrl* m_textCtrlStatus;
|
|
|
|
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
wxButton* m_buttonCancel;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CSendingDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Sending..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 442,151 ), long style = wxDEFAULT_DIALOG_STYLE );
|
|
|
|
~CSendingDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CYourAddressDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CYourAddressDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
wxStaticText* m_staticText45;
|
|
|
|
wxListCtrl* m_listCtrl;
|
|
|
|
|
|
|
|
wxButton* m_buttonRename;
|
|
|
|
wxButton* m_buttonNew;
|
|
|
|
wxButton* m_buttonCopy;
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
wxButton* m_buttonCancel;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonRename( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CYourAddressDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Your Bitcoin Addresses"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
|
|
|
~CYourAddressDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CAddressBookDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CAddressBookDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
wxNotebook* m_notebook;
|
|
|
|
wxPanel* m_panelSending;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText55;
|
|
|
|
wxListCtrl* m_listCtrlSending;
|
|
|
|
wxPanel* m_panelReceiving;
|
|
|
|
|
|
|
|
wxStaticText* m_staticText45;
|
|
|
|
|
|
|
|
wxListCtrl* m_listCtrlReceiving;
|
|
|
|
|
|
|
|
wxButton* m_buttonDelete;
|
|
|
|
wxButton* m_buttonCopy;
|
|
|
|
wxButton* m_buttonEdit;
|
|
|
|
wxButton* m_buttonNew;
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnNotebookPageChanged( wxNotebookEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListEndLabelEdit( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListItemActivated( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnListItemSelected( wxListEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonDelete( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCopy( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonEdit( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonNew( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
wxButton* m_buttonCancel;
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CAddressBookDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Address Book"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 610,390 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
|
|
|
~CAddressBookDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
/// Class CGetTextFromUserDialogBase
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CGetTextFromUserDialogBase : public wxDialog
|
|
|
|
{
|
|
|
|
private:
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
wxStaticText* m_staticTextMessage1;
|
|
|
|
wxTextCtrl* m_textCtrl1;
|
|
|
|
wxStaticText* m_staticTextMessage2;
|
|
|
|
wxTextCtrl* m_textCtrl2;
|
|
|
|
|
|
|
|
|
|
|
|
wxButton* m_buttonOK;
|
|
|
|
wxButton* m_buttonCancel;
|
|
|
|
|
|
|
|
// Virtual event handlers, overide them in your derived class
|
2011-03-13 18:35:39 +01:00
|
|
|
virtual void OnClose( wxCloseEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonOK( wxCommandEvent& event ) { event.Skip(); }
|
|
|
|
virtual void OnButtonCancel( wxCommandEvent& event ) { event.Skip(); }
|
2010-08-29 18:58:15 +02:00
|
|
|
|
|
|
|
|
|
|
|
public:
|
2011-03-13 18:35:39 +01:00
|
|
|
|
2010-08-29 18:58:15 +02:00
|
|
|
CGetTextFromUserDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 440,138 ), long style = wxDEFAULT_DIALOG_STYLE );
|
|
|
|
~CGetTextFromUserDialogBase();
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif //__uibase__
|