]> git.saurik.com Git - wxWidgets.git/commitdiff
added code to test UI updating of menu items in MDI apps
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 24 Jul 2006 13:36:22 +0000 (13:36 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 24 Jul 2006 13:36:22 +0000 (13:36 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/mdi/mdi.cpp
samples/mdi/mdi.h

index c6e71b6ee02edbc051afc75b0a650e708df741bb..ea50399a218fb7e85e65574681f85eb404df4fc2 100644 (file)
@@ -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
index d0d6c422e17c87d6cf3c36791de3ee26eb21013d..2a2966755767525fdade53d144b016b7f16b9ec4 100644 (file)
@@ -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()
 };