From: Vadim Zeitlin Date: Mon, 24 Jul 2006 13:36:22 +0000 (+0000) Subject: added code to test UI updating of menu items in MDI apps X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/c9f856af6714b6a96bb9d4702797ae290ceea617 added code to test UI updating of menu items in MDI apps git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp index c6e71b6ee0..ea50399a21 100644 --- a/samples/mdi/mdi.cpp +++ b/samples/mdi/mdi.cpp @@ -85,6 +85,11 @@ BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame) EVT_MENU(MDI_CHANGE_POSITION, MyChild::OnChangePosition) EVT_MENU(MDI_CHANGE_SIZE, MyChild::OnChangeSize) +#if wxUSE_CLIPBOARD + EVT_MENU(wxID_PASTE, MyChild::OnPaste) + EVT_UPDATE_UI(wxID_PASTE, MyChild::OnUpdatePaste) +#endif // wxUSE_CLIPBOARD + EVT_SIZE(MyChild::OnSize) EVT_MOVE(MyChild::OnMove) @@ -251,6 +256,10 @@ void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event) ) option_menu->AppendSeparator(); option_menu->Append(MDI_CHANGE_POSITION, _T("Move frame\tCtrl-M")); option_menu->Append(MDI_CHANGE_SIZE, _T("Resize frame\tCtrl-S")); +#if wxUSE_CLIPBOARD + option_menu->AppendSeparator(); + option_menu->Append(wxID_PASTE, _T("Copy text from clipboard\tCtrl-V")); +#endif // wxUSE_CLIPBOARD wxMenu *help_menu = new wxMenu; help_menu->Append(MDI_ABOUT, _T("&About")); @@ -367,6 +376,9 @@ MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size) // Define the repainting behaviour void MyCanvas::OnDraw(wxDC& dc) { + if ( !m_text.empty() ) + dc.DrawText(m_text, 10, 10); + dc.SetFont(*wxSWISS_FONT); dc.SetPen(*wxGREEN_PEN); dc.DrawLine(0, 0, 200, 200); @@ -521,3 +533,23 @@ void MyChild::OnClose(wxCloseEvent& event) event.Skip(); } + +#if wxUSE_CLIPBOARD + +#include "wx/clipbrd.h" + +void MyChild::OnPaste(wxCommandEvent& WXUNUSED(event)) +{ + wxClipboardLocker lock; + wxTextDataObject data; + canvas->SetText(wxTheClipboard->GetData(data) ? data.GetText() + : _T("No text on clipboard")); +} + +void MyChild::OnUpdatePaste(wxUpdateUIEvent& event) +{ + wxClipboardLocker lock; + event.Enable( wxTheClipboard->IsSupported(wxDF_TEXT) ); +} + +#endif // wxUSE_CLIPBOARD diff --git a/samples/mdi/mdi.h b/samples/mdi/mdi.h index d0d6c422e1..2a29667557 100644 --- a/samples/mdi/mdi.h +++ b/samples/mdi/mdi.h @@ -28,7 +28,11 @@ public: void OnEvent(wxMouseEvent& event); + void SetText(const wxString& text) { m_text = text; Refresh(); } + private: + wxString m_text; + bool m_dirty; DECLARE_EVENT_TABLE() @@ -73,6 +77,11 @@ public: void OnMove(wxMoveEvent& event); void OnClose(wxCloseEvent& event); +#if wxUSE_CLIPBOARD + void OnPaste(wxCommandEvent& event); + void OnUpdatePaste(wxUpdateUIEvent& event); +#endif // wxUSE_CLIPBOARD + DECLARE_EVENT_TABLE() };