diff options
Diffstat (limited to 'ui.h')
-rw-r--r-- | ui.h | 758 |
1 files changed, 379 insertions, 379 deletions
@@ -1,379 +1,379 @@ -// Copyright (c) 2009-2010 Satoshi Nakamoto
-// Distributed under the MIT/X11 software license, see the accompanying
-// file license.txt or http://www.opensource.org/licenses/mit-license.php.
-
-DECLARE_EVENT_TYPE(wxEVT_UITHREADCALL, -1)
-
-#if wxUSE_GUI
-static const bool fGUI=true;
-#else
-static const bool fGUI=false;
-#endif
-
-inline int MyMessageBox(const wxString& message, const wxString& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
-{
-#if wxUSE_GUI
- if (!fDaemon)
- return wxMessageBox(message, caption, style, parent, x, y);
-#endif
- printf("wxMessageBox %s: %s\n", string(caption).c_str(), string(message).c_str());
- fprintf(stderr, "%s: %s\n", string(caption).c_str(), string(message).c_str());
- return wxOK;
-}
-#define wxMessageBox MyMessageBox
-
-
-
-
-void HandleCtrlA(wxKeyEvent& event);
-string FormatTxStatus(const CWalletTx& wtx);
-void UIThreadCall(boost::function0<void>);
-int ThreadSafeMessageBox(const string& message, const string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1);
-bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, wxWindow* parent);
-void CalledSetStatusBar(const string& strText, int nField);
-void MainFrameRepaint();
-void CreateMainWindow();
-
-
-
-
-
-#if !wxUSE_GUI
-inline int ThreadSafeMessageBox(const string& message, const string& caption, int style, wxWindow* parent, int x, int y)
-{
- return MyMessageBox(message, caption, style, parent, x, y);
-}
-
-inline bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, wxWindow* parent)
-{
- return true;
-}
-
-inline void CalledSetStatusBar(const string& strText, int nField)
-{
-}
-
-inline void UIThreadCall(boost::function0<void> fn)
-{
-}
-
-inline void MainFrameRepaint()
-{
-}
-
-inline void CreateMainWindow()
-{
-}
-#else // wxUSE_GUI
-
-
-
-
-
-class CMainFrame : public CMainFrameBase
-{
-protected:
- // Event handlers
- void OnNotebookPageChanged(wxNotebookEvent& event);
- void OnClose(wxCloseEvent& event);
- void OnIconize(wxIconizeEvent& event);
- void OnMouseEvents(wxMouseEvent& event);
- void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); }
- void OnIdle(wxIdleEvent& event);
- void OnPaint(wxPaintEvent& event);
- void OnPaintListCtrl(wxPaintEvent& event);
- void OnMenuFileExit(wxCommandEvent& event);
- void OnMenuOptionsGenerate(wxCommandEvent& event);
- void OnUpdateUIOptionsGenerate(wxUpdateUIEvent& event);
- void OnMenuOptionsChangeYourAddress(wxCommandEvent& event);
- void OnMenuOptionsOptions(wxCommandEvent& event);
- void OnMenuHelpAbout(wxCommandEvent& event);
- void OnButtonSend(wxCommandEvent& event);
- void OnButtonAddressBook(wxCommandEvent& event);
- void OnSetFocusAddress(wxFocusEvent& event);
- void OnMouseEventsAddress(wxMouseEvent& event);
- void OnButtonNew(wxCommandEvent& event);
- void OnButtonCopy(wxCommandEvent& event);
- void OnListColBeginDrag(wxListEvent& event);
- void OnListItemActivated(wxListEvent& event);
- void OnListItemActivatedProductsSent(wxListEvent& event);
- void OnListItemActivatedOrdersSent(wxListEvent& event);
- void OnListItemActivatedOrdersReceived(wxListEvent& event);
-
-public:
- /** Constructor */
- CMainFrame(wxWindow* parent);
- ~CMainFrame();
-
- // Custom
- enum
- {
- ALL = 0,
- SENTRECEIVED = 1,
- SENT = 2,
- RECEIVED = 3,
- };
- int nPage;
- wxListCtrl* m_listCtrl;
- bool fShowGenerated;
- bool fShowSent;
- bool fShowReceived;
- bool fRefreshListCtrl;
- bool fRefreshListCtrlRunning;
- bool fOnSetFocusAddress;
- unsigned int nListViewUpdated;
- bool fRefresh;
-
- void OnUIThreadCall(wxCommandEvent& event);
- int GetSortIndex(const string& strSort);
- void InsertLine(bool fNew, int nIndex, uint256 hashKey, string strSort, const wxString& str1, const wxString& str2, const wxString& str3, const wxString& str4, const wxString& str5);
- bool DeleteLine(uint256 hashKey);
- bool InsertTransaction(const CWalletTx& wtx, bool fNew, int nIndex=-1);
- void RefreshListCtrl();
- void RefreshStatusColumn();
-};
-
-
-
-
-class CTxDetailsDialog : public CTxDetailsDialogBase
-{
-protected:
- // Event handlers
- void OnButtonOK(wxCommandEvent& event);
-
-public:
- /** Constructor */
- CTxDetailsDialog(wxWindow* parent, CWalletTx wtx);
-
- // State
- CWalletTx wtx;
-};
-
-
-
-class COptionsDialog : public COptionsDialogBase
-{
-protected:
- // Event handlers
- void OnListBox(wxCommandEvent& event);
- void OnKillFocusTransactionFee(wxFocusEvent& event);
- void OnCheckBoxLimitProcessors(wxCommandEvent& event);
- void OnCheckBoxUseProxy(wxCommandEvent& event);
- void OnKillFocusProxy(wxFocusEvent& event);
-
- void OnButtonOK(wxCommandEvent& event);
- void OnButtonCancel(wxCommandEvent& event);
- void OnButtonApply(wxCommandEvent& event);
-
-public:
- /** Constructor */
- COptionsDialog(wxWindow* parent);
-
- // Custom
- bool fTmpStartOnSystemStartup;
- bool fTmpMinimizeOnClose;
- void SelectPage(int nPage);
- CAddress GetProxyAddr();
-};
-
-
-
-class CAboutDialog : public CAboutDialogBase
-{
-protected:
- // Event handlers
- void OnButtonOK(wxCommandEvent& event);
-
-public:
- /** Constructor */
- CAboutDialog(wxWindow* parent);
-};
-
-
-
-class CSendDialog : public CSendDialogBase
-{
-protected:
- // Event handlers
- void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); }
- void OnTextAddress(wxCommandEvent& event);
- void OnKillFocusAmount(wxFocusEvent& event);
- void OnButtonAddressBook(wxCommandEvent& event);
- void OnButtonPaste(wxCommandEvent& event);
- void OnButtonSend(wxCommandEvent& event);
- void OnButtonCancel(wxCommandEvent& event);
-
-public:
- /** Constructor */
- CSendDialog(wxWindow* parent, const wxString& strAddress="");
-
- // Custom
- bool fEnabledPrev;
- string strFromSave;
- string strMessageSave;
-};
-
-
-
-class CSendingDialog : public CSendingDialogBase
-{
-public:
- // Event handlers
- void OnClose(wxCloseEvent& event);
- void OnButtonOK(wxCommandEvent& event);
- void OnButtonCancel(wxCommandEvent& event);
- void OnPaint(wxPaintEvent& event);
-
-public:
- /** Constructor */
- CSendingDialog(wxWindow* parent, const CAddress& addrIn, int64 nPriceIn, const CWalletTx& wtxIn);
- ~CSendingDialog();
-
- // State
- CAddress addr;
- int64 nPrice;
- CWalletTx wtx;
- wxDateTime start;
- char pszStatus[10000];
- bool fCanCancel;
- bool fAbort;
- bool fSuccess;
- bool fUIDone;
- bool fWorkDone;
-
- void Close();
- void Repaint();
- bool Status();
- bool Status(const string& str);
- bool Error(const string& str);
- void StartTransfer();
- void OnReply2(CDataStream& vRecv);
- void OnReply3(CDataStream& vRecv);
-};
-
-void SendingDialogStartTransfer(void* parg);
-void SendingDialogOnReply2(void* parg, CDataStream& vRecv);
-void SendingDialogOnReply3(void* parg, CDataStream& vRecv);
-
-
-
-class CAddressBookDialog : public CAddressBookDialogBase
-{
-protected:
- // Event handlers
- void OnNotebookPageChanged(wxNotebookEvent& event);
- void OnListEndLabelEdit(wxListEvent& event);
- void OnListItemSelected(wxListEvent& event);
- void OnListItemActivated(wxListEvent& event);
- void OnButtonDelete(wxCommandEvent& event);
- void OnButtonCopy(wxCommandEvent& event);
- void OnButtonEdit(wxCommandEvent& event);
- void OnButtonNew(wxCommandEvent& event);
- void OnButtonOK(wxCommandEvent& event);
- void OnButtonCancel(wxCommandEvent& event);
- void OnClose(wxCloseEvent& event);
-
-public:
- /** Constructor */
- CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn);
-
- // Custom
- enum
- {
- SENDING = 0,
- RECEIVING = 1,
- };
- int nPage;
- wxListCtrl* m_listCtrl;
- bool fDuringSend;
- wxString GetAddress();
- wxString GetSelectedAddress();
- wxString GetSelectedSendingAddress();
- wxString GetSelectedReceivingAddress();
- bool CheckIfMine(const string& strAddress, const string& strTitle);
-};
-
-
-
-class CGetTextFromUserDialog : public CGetTextFromUserDialogBase
-{
-protected:
- // Event handlers
- void OnButtonOK(wxCommandEvent& event) { EndModal(true); }
- void OnButtonCancel(wxCommandEvent& event) { EndModal(false); }
- void OnClose(wxCloseEvent& event) { EndModal(false); }
-
- void OnKeyDown(wxKeyEvent& event)
- {
- if (event.GetKeyCode() == '\r' || event.GetKeyCode() == WXK_NUMPAD_ENTER)
- EndModal(true);
- else
- HandleCtrlA(event);
- }
-
-public:
- /** Constructor */
- CGetTextFromUserDialog(wxWindow* parent,
- const string& strCaption,
- const string& strMessage1,
- const string& strValue1="",
- const string& strMessage2="",
- const string& strValue2="") : CGetTextFromUserDialogBase(parent, wxID_ANY, strCaption)
- {
- int x = GetSize().GetWidth();
- int y = GetSize().GetHeight();
- m_staticTextMessage1->SetLabel(strMessage1);
- m_textCtrl1->SetValue(strValue1);
- y += wxString(strMessage1).Freq('\n') * 14;
- if (!strMessage2.empty())
- {
- m_staticTextMessage2->Show(true);
- m_staticTextMessage2->SetLabel(strMessage2);
- m_textCtrl2->Show(true);
- m_textCtrl2->SetValue(strValue2);
- y += 46 + wxString(strMessage2).Freq('\n') * 14;
- }
- if (!fWindows)
- {
- x *= 1.14;
- y *= 1.14;
- }
- SetSize(x, y);
- }
-
- // Custom
- string GetValue() { return (string)m_textCtrl1->GetValue(); }
- string GetValue1() { return (string)m_textCtrl1->GetValue(); }
- string GetValue2() { return (string)m_textCtrl2->GetValue(); }
-};
-
-
-
-class CMyTaskBarIcon : public wxTaskBarIcon
-{
-protected:
- // Event handlers
- void OnLeftButtonDClick(wxTaskBarIconEvent& event);
- void OnMenuRestore(wxCommandEvent& event);
- void OnMenuOptions(wxCommandEvent& event);
- void OnUpdateUIGenerate(wxUpdateUIEvent& event);
- void OnMenuGenerate(wxCommandEvent& event);
- void OnMenuExit(wxCommandEvent& event);
-
-public:
- CMyTaskBarIcon() : wxTaskBarIcon()
- {
- Show(true);
- }
-
- void Show(bool fShow=true);
- void Hide();
- void Restore();
- void UpdateTooltip();
- virtual wxMenu* CreatePopupMenu();
-
-DECLARE_EVENT_TABLE()
-};
-
-#endif // wxUSE_GUI
+// Copyright (c) 2009-2010 Satoshi Nakamoto +// Distributed under the MIT/X11 software license, see the accompanying +// file license.txt or http://www.opensource.org/licenses/mit-license.php. + +DECLARE_EVENT_TYPE(wxEVT_UITHREADCALL, -1) + +#if wxUSE_GUI +static const bool fGUI=true; +#else +static const bool fGUI=false; +#endif + +inline int MyMessageBox(const wxString& message, const wxString& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1) +{ +#if wxUSE_GUI + if (!fDaemon) + return wxMessageBox(message, caption, style, parent, x, y); +#endif + printf("wxMessageBox %s: %s\n", string(caption).c_str(), string(message).c_str()); + fprintf(stderr, "%s: %s\n", string(caption).c_str(), string(message).c_str()); + return wxOK; +} +#define wxMessageBox MyMessageBox + + + + +void HandleCtrlA(wxKeyEvent& event); +string FormatTxStatus(const CWalletTx& wtx); +void UIThreadCall(boost::function0<void>); +int ThreadSafeMessageBox(const string& message, const string& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1); +bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, wxWindow* parent); +void CalledSetStatusBar(const string& strText, int nField); +void MainFrameRepaint(); +void CreateMainWindow(); + + + + + +#if !wxUSE_GUI +inline int ThreadSafeMessageBox(const string& message, const string& caption, int style, wxWindow* parent, int x, int y) +{ + return MyMessageBox(message, caption, style, parent, x, y); +} + +inline bool ThreadSafeAskFee(int64 nFeeRequired, const string& strCaption, wxWindow* parent) +{ + return true; +} + +inline void CalledSetStatusBar(const string& strText, int nField) +{ +} + +inline void UIThreadCall(boost::function0<void> fn) +{ +} + +inline void MainFrameRepaint() +{ +} + +inline void CreateMainWindow() +{ +} +#else // wxUSE_GUI + + + + + +class CMainFrame : public CMainFrameBase +{ +protected: + // Event handlers + void OnNotebookPageChanged(wxNotebookEvent& event); + void OnClose(wxCloseEvent& event); + void OnIconize(wxIconizeEvent& event); + void OnMouseEvents(wxMouseEvent& event); + void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); } + void OnIdle(wxIdleEvent& event); + void OnPaint(wxPaintEvent& event); + void OnPaintListCtrl(wxPaintEvent& event); + void OnMenuFileExit(wxCommandEvent& event); + void OnMenuOptionsGenerate(wxCommandEvent& event); + void OnUpdateUIOptionsGenerate(wxUpdateUIEvent& event); + void OnMenuOptionsChangeYourAddress(wxCommandEvent& event); + void OnMenuOptionsOptions(wxCommandEvent& event); + void OnMenuHelpAbout(wxCommandEvent& event); + void OnButtonSend(wxCommandEvent& event); + void OnButtonAddressBook(wxCommandEvent& event); + void OnSetFocusAddress(wxFocusEvent& event); + void OnMouseEventsAddress(wxMouseEvent& event); + void OnButtonNew(wxCommandEvent& event); + void OnButtonCopy(wxCommandEvent& event); + void OnListColBeginDrag(wxListEvent& event); + void OnListItemActivated(wxListEvent& event); + void OnListItemActivatedProductsSent(wxListEvent& event); + void OnListItemActivatedOrdersSent(wxListEvent& event); + void OnListItemActivatedOrdersReceived(wxListEvent& event); + +public: + /** Constructor */ + CMainFrame(wxWindow* parent); + ~CMainFrame(); + + // Custom + enum + { + ALL = 0, + SENTRECEIVED = 1, + SENT = 2, + RECEIVED = 3, + }; + int nPage; + wxListCtrl* m_listCtrl; + bool fShowGenerated; + bool fShowSent; + bool fShowReceived; + bool fRefreshListCtrl; + bool fRefreshListCtrlRunning; + bool fOnSetFocusAddress; + unsigned int nListViewUpdated; + bool fRefresh; + + void OnUIThreadCall(wxCommandEvent& event); + int GetSortIndex(const string& strSort); + void InsertLine(bool fNew, int nIndex, uint256 hashKey, string strSort, const wxString& str1, const wxString& str2, const wxString& str3, const wxString& str4, const wxString& str5); + bool DeleteLine(uint256 hashKey); + bool InsertTransaction(const CWalletTx& wtx, bool fNew, int nIndex=-1); + void RefreshListCtrl(); + void RefreshStatusColumn(); +}; + + + + +class CTxDetailsDialog : public CTxDetailsDialogBase +{ +protected: + // Event handlers + void OnButtonOK(wxCommandEvent& event); + +public: + /** Constructor */ + CTxDetailsDialog(wxWindow* parent, CWalletTx wtx); + + // State + CWalletTx wtx; +}; + + + +class COptionsDialog : public COptionsDialogBase +{ +protected: + // Event handlers + void OnListBox(wxCommandEvent& event); + void OnKillFocusTransactionFee(wxFocusEvent& event); + void OnCheckBoxLimitProcessors(wxCommandEvent& event); + void OnCheckBoxUseProxy(wxCommandEvent& event); + void OnKillFocusProxy(wxFocusEvent& event); + + void OnButtonOK(wxCommandEvent& event); + void OnButtonCancel(wxCommandEvent& event); + void OnButtonApply(wxCommandEvent& event); + +public: + /** Constructor */ + COptionsDialog(wxWindow* parent); + + // Custom + bool fTmpStartOnSystemStartup; + bool fTmpMinimizeOnClose; + void SelectPage(int nPage); + CAddress GetProxyAddr(); +}; + + + +class CAboutDialog : public CAboutDialogBase +{ +protected: + // Event handlers + void OnButtonOK(wxCommandEvent& event); + +public: + /** Constructor */ + CAboutDialog(wxWindow* parent); +}; + + + +class CSendDialog : public CSendDialogBase +{ +protected: + // Event handlers + void OnKeyDown(wxKeyEvent& event) { HandleCtrlA(event); } + void OnTextAddress(wxCommandEvent& event); + void OnKillFocusAmount(wxFocusEvent& event); + void OnButtonAddressBook(wxCommandEvent& event); + void OnButtonPaste(wxCommandEvent& event); + void OnButtonSend(wxCommandEvent& event); + void OnButtonCancel(wxCommandEvent& event); + +public: + /** Constructor */ + CSendDialog(wxWindow* parent, const wxString& strAddress=""); + + // Custom + bool fEnabledPrev; + string strFromSave; + string strMessageSave; +}; + + + +class CSendingDialog : public CSendingDialogBase +{ +public: + // Event handlers + void OnClose(wxCloseEvent& event); + void OnButtonOK(wxCommandEvent& event); + void OnButtonCancel(wxCommandEvent& event); + void OnPaint(wxPaintEvent& event); + +public: + /** Constructor */ + CSendingDialog(wxWindow* parent, const CAddress& addrIn, int64 nPriceIn, const CWalletTx& wtxIn); + ~CSendingDialog(); + + // State + CAddress addr; + int64 nPrice; + CWalletTx wtx; + wxDateTime start; + char pszStatus[10000]; + bool fCanCancel; + bool fAbort; + bool fSuccess; + bool fUIDone; + bool fWorkDone; + + void Close(); + void Repaint(); + bool Status(); + bool Status(const string& str); + bool Error(const string& str); + void StartTransfer(); + void OnReply2(CDataStream& vRecv); + void OnReply3(CDataStream& vRecv); +}; + +void SendingDialogStartTransfer(void* parg); +void SendingDialogOnReply2(void* parg, CDataStream& vRecv); +void SendingDialogOnReply3(void* parg, CDataStream& vRecv); + + + +class CAddressBookDialog : public CAddressBookDialogBase +{ +protected: + // Event handlers + void OnNotebookPageChanged(wxNotebookEvent& event); + void OnListEndLabelEdit(wxListEvent& event); + void OnListItemSelected(wxListEvent& event); + void OnListItemActivated(wxListEvent& event); + void OnButtonDelete(wxCommandEvent& event); + void OnButtonCopy(wxCommandEvent& event); + void OnButtonEdit(wxCommandEvent& event); + void OnButtonNew(wxCommandEvent& event); + void OnButtonOK(wxCommandEvent& event); + void OnButtonCancel(wxCommandEvent& event); + void OnClose(wxCloseEvent& event); + +public: + /** Constructor */ + CAddressBookDialog(wxWindow* parent, const wxString& strInitSelected, int nPageIn, bool fDuringSendIn); + + // Custom + enum + { + SENDING = 0, + RECEIVING = 1, + }; + int nPage; + wxListCtrl* m_listCtrl; + bool fDuringSend; + wxString GetAddress(); + wxString GetSelectedAddress(); + wxString GetSelectedSendingAddress(); + wxString GetSelectedReceivingAddress(); + bool CheckIfMine(const string& strAddress, const string& strTitle); +}; + + + +class CGetTextFromUserDialog : public CGetTextFromUserDialogBase +{ +protected: + // Event handlers + void OnButtonOK(wxCommandEvent& event) { EndModal(true); } + void OnButtonCancel(wxCommandEvent& event) { EndModal(false); } + void OnClose(wxCloseEvent& event) { EndModal(false); } + + void OnKeyDown(wxKeyEvent& event) + { + if (event.GetKeyCode() == '\r' || event.GetKeyCode() == WXK_NUMPAD_ENTER) + EndModal(true); + else + HandleCtrlA(event); + } + +public: + /** Constructor */ + CGetTextFromUserDialog(wxWindow* parent, + const string& strCaption, + const string& strMessage1, + const string& strValue1="", + const string& strMessage2="", + const string& strValue2="") : CGetTextFromUserDialogBase(parent, wxID_ANY, strCaption) + { + int x = GetSize().GetWidth(); + int y = GetSize().GetHeight(); + m_staticTextMessage1->SetLabel(strMessage1); + m_textCtrl1->SetValue(strValue1); + y += wxString(strMessage1).Freq('\n') * 14; + if (!strMessage2.empty()) + { + m_staticTextMessage2->Show(true); + m_staticTextMessage2->SetLabel(strMessage2); + m_textCtrl2->Show(true); + m_textCtrl2->SetValue(strValue2); + y += 46 + wxString(strMessage2).Freq('\n') * 14; + } + if (!fWindows) + { + x *= 1.14; + y *= 1.14; + } + SetSize(x, y); + } + + // Custom + string GetValue() { return (string)m_textCtrl1->GetValue(); } + string GetValue1() { return (string)m_textCtrl1->GetValue(); } + string GetValue2() { return (string)m_textCtrl2->GetValue(); } +}; + + + +class CMyTaskBarIcon : public wxTaskBarIcon +{ +protected: + // Event handlers + void OnLeftButtonDClick(wxTaskBarIconEvent& event); + void OnMenuRestore(wxCommandEvent& event); + void OnMenuOptions(wxCommandEvent& event); + void OnUpdateUIGenerate(wxUpdateUIEvent& event); + void OnMenuGenerate(wxCommandEvent& event); + void OnMenuExit(wxCommandEvent& event); + +public: + CMyTaskBarIcon() : wxTaskBarIcon() + { + Show(true); + } + + void Show(bool fShow=true); + void Hide(); + void Restore(); + void UpdateTooltip(); + virtual wxMenu* CreatePopupMenu(); + +DECLARE_EVENT_TABLE() +}; + +#endif // wxUSE_GUI |