aboutsummaryrefslogtreecommitdiff
path: root/ui.h
diff options
context:
space:
mode:
authors_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2010-08-29 16:58:15 +0000
committers_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2010-08-29 16:58:15 +0000
commit0a61b0df1224a5470bcddab302bc199ca5a9e356 (patch)
tree78560a03540864c3c6d6fcaf9c334f479cafc1bb /ui.h
parent5b721607b1057df4dfe97f80d235ed372312f398 (diff)
downloadbitcoin-0a61b0df1224a5470bcddab302bc199ca5a9e356.tar.xz
propset svn:eol-style native
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@146 1a98c847-1fd6-4fd8-948a-caf3550aa51b
Diffstat (limited to 'ui.h')
-rw-r--r--ui.h692
1 files changed, 346 insertions, 346 deletions
diff --git a/ui.h b/ui.h
index 1fb6f265eb..b78f2064e0 100644
--- a/ui.h
+++ b/ui.h
@@ -1,346 +1,346 @@
-// 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)
-
-
-
-extern wxLocale g_locale;
-
-
-
-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();
-void SetStartOnSystemStartup(bool fAutoStart);
-
-
-
-
-inline int MyMessageBox(const wxString& message, const wxString& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
-{
-#ifdef 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
-
-
-
-
-
-
-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;
- }
-#ifndef __WXMSW__
- x *= 1.14;
- y *= 1.14;
-#endif
- 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()
-};
+// 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)
+
+
+
+extern wxLocale g_locale;
+
+
+
+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();
+void SetStartOnSystemStartup(bool fAutoStart);
+
+
+
+
+inline int MyMessageBox(const wxString& message, const wxString& caption="Message", int style=wxOK, wxWindow* parent=NULL, int x=-1, int y=-1)
+{
+#ifdef 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
+
+
+
+
+
+
+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;
+ }
+#ifndef __WXMSW__
+ x *= 1.14;
+ y *= 1.14;
+#endif
+ 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()
+};